Commit Graph

318 Commits

Author SHA1 Message Date
Nick Black
e591ec2e98
cell -> nccell throughout much of remaining API (#1535)
cell -> nccell throughout much of the API #1532
2021-04-14 06:42:14 -04:00
joseLuís
5f96acc9e3 [rust] refacture NcVisual module
- separate the methods into its own module.
- add constants NCVISUAL_OPTION_ADDALPHA, NCVISUAL_OPTION_HORALIGNED, NCVISUAL_OPTION_VERALIGNED
- add NcRgba type.
- update the docs.
2021-04-10 20:19:13 +02:00
joseLuís
48ab7e0945 [rust] fix #1509
- fix bugs in macros: error, error_ref & error_ref_mut
- remove issue-1509 example
- minor improvements
- rustfmt
2021-04-10 19:26:55 +02:00
nick black
bb0d6c2e80 [rust] update fullsize_pixel_without_plane() 2021-04-10 12:02:58 -04:00
nick black
bac7d634d9 [visual] pipe transcolor through, use it everywhere #1518 2021-04-10 12:02:58 -04:00
nick black
33929cf91e
[rust] update to nccell 2021-04-10 09:33:01 -04:00
joseLuís
bc80350384 [rust] several fixes
- fix after renaming cell functions.
- fix some NcVisual method names and docs
- fix some rustdoc warnings
2021-04-10 15:29:55 +02:00
nick black
849ec2748f
[rust] nccell updates 2021-04-10 09:23:42 -04:00
nick black
ff76dba6ed
cell_strdup -> nccell_strdup 2021-04-10 09:21:52 -04:00
joseLuís
1afe6f162e rust: add new pixel geometry functionality
- add NcPlane method .pixelgeom.
- upgrade full-capabilities example.
- fix NcVisual method .blitter_geom docs.
- rustfmt
2021-04-10 15:09:02 +02:00
Nick Black
04b1ba8ed2
Dankamongmen/unify geom (#1514)
deprecate ncvisual_geom() in favor of new ncvisual_blitter_geom(), which allows caller to get the blitter used. replace the checks and calculations in ncvisual_render() with a call to ncvisual_blitter_geom(), unifying the two paths (and eliminating several bugs in the unloved ncvisual_geom()).
2021-04-10 04:04:02 -04:00
joseLuís
429ca673d3 rust: several fixes; add example for issue #1509
- fix method name: NcPlane.at_yx_cell().
- tell bidngen derive more traits when it can
- update .gitignore so it doesn't ignore rust/build
2021-04-08 14:48:16 +02:00
joseLuís
7d51756a12 rust: new poc-planebase example; doc improvements
- improve NcVisual.from_rgba documentation.
- fix Notcurses.term_dim_yx documentation.
- new example `poc-planebase` to help find the bug.
- improve full-capabilities example a little.
2021-04-08 13:11:06 +02:00
joseLuís
60c874f835 rust: impl ncplane_as_rgba; refactor macros
- rename and refactor NcPlane method rgba() to as_rgba().
- add example `issue-rgba` that shows a problem when the plane has text.
- refactor `error_ref` & `error_ref_mut` macros to allow custom return values
2021-04-08 11:07:04 +02:00
joseLuís
4996bebad0 rust: add constant NCOPTION_NO_CLEAR_BITMAPS 2021-04-08 09:22:56 +02:00
joseLuís
7c6083ee1a rust: add missing functions & constants; refactor
- implement methods for ncplane_resize_marginalized & notcurses_debug_caps.
- add constants NCPLANE_OPTION_MARGINALIZED & NCPLANE_OPTION_VERALIGNED.
- signature updates for NcChannel* & NcPixel trait methods.
- minor improvements.
2021-04-08 08:35:35 +02:00
joseLuís
ae2af14281 rust: new methods, refactor methods and planes example
- add NcChannelPair constructors.
- change some NcChannel methods to return Self: set(), set_alpha()
- add NcPlane methods move_rel() & resize_simple_rel().
- add example full-planes (WIP).
- remove proto-example full-basics.
- small update of poc-menu example.
2021-04-07 20:32:46 +02:00
joseLuís
435b8cb6a7 rust: refactor examples & palette_size method
- refactor Notcurses.palette_size() to return an NcResult.
- refactor & rename example direct-text.rs to direct-capabilities.rs.
- new example full-capabilities.rs
2021-04-07 14:49:44 +02:00
joseLuís
1e274287f6 rust: add NcTree widget.
- created all methods except .goto().
- WIP callback types.
- minor updates.
- rustfmt.
2021-04-07 14:19:13 +02:00
joseLuís
aa9bf7a0e7 rust: add ncplane_abs_yx, ncplane_abs_y, ncplane_abs_x
- minor updates
2021-04-07 11:47:05 +02:00
joseLuís
29ac41440c rust: add NcPlane methods resize_maximize & rgba; fix #1508 2021-04-06 19:29:03 +02:00
joseLuís
8cf52672cb rust: rustfmt 2021-04-06 12:31:19 +02:00
joseLuís
89e38c11f3 rust: add ncvisual methods & pixel-cell example 2021-04-05 23:55:24 +02:00
joseLuís
1c5ee9eb8c rust: add more functions and methods
- add functions: ncdirect_core_init & notcurses_core_init (methods pending)
- add functions & methods: ncdirect_readline & notcurses_can_braille
- minor fixes
2021-04-05 19:34:39 +02:00
joseLuís
5492119263 rust: add *_check_pixel_support functions + example 2021-04-05 11:16:34 +02:00
joseLuís
43d1f7192b rust: refactor NcError constructor methods 2021-03-31 14:45:47 +02:00
nick black
a8a42c2a50 [planes] implement ncplane_resize_marginalized() #1472 2021-03-27 07:07:48 -04:00
nick black
50df69ab31 [planes] implement MARGINALIZED in ncplane_create() #1472 2021-03-27 07:07:48 -04:00
nick black
a9d9093e22 rust: fix up notcurses_align() unification #1468 2021-03-27 02:31:51 -04:00
nick black
df85fb55ba [bitmaps] fix bitmap placement when making a new plane #1468 2021-03-27 02:31:51 -04:00
nick black
229c1ab3c2 ncplane_new_internal: use ncplane_valign() #1468 2021-03-27 02:31:51 -04:00
nick black
fc79dcd77a update rust for halign/valign #1468 2021-03-27 02:31:51 -04:00
nick black
033ae7f93e [capabilities] eradicate notcurses_canpixel() 2021-03-25 20:41:02 -04:00
nick black
1a1305faee rust: adapt NcDirect::render_frame() #1411 2021-03-14 22:48:47 -04:00
nick black
70be457071
rust: hide blitset definition 2021-03-07 22:59:02 -05:00
nick black
74f7597d09 rust: drop unused import 2021-02-27 19:03:42 -05:00
nick black
53c52e30ff remove c++/rust channel wholesalers 2021-02-27 19:03:42 -05:00
nick black
16ec1c3618 rust: purge NCOPTION_VERIFY_SIXEL 2021-02-27 19:03:42 -05:00
nick black
7724f6301e s/notcurses_cansixel/notcurses_canpixel/g #200 2021-02-27 19:03:42 -05:00
nick black
901ccc2d28 rust/python: ncblit_sixel -> ncblit_pixel 2021-02-27 19:03:42 -05:00
Ben Spencer
9625450848 rust: fix a couple of doc comments 2021-02-21 15:11:21 -05:00
nick black
d732ffc1f4
rust: use CELL_BG_ALPHA_MASK not CHANNEL_ALPHA_MASK 2021-02-21 08:22:25 -05:00
nick black
f775ae6b59 rust: update stats() 2021-02-18 04:14:41 -05:00
nick black
6c48c82171 rust: CELL_NOBACKGROUND_MASK oughtn't be exported 2021-02-02 00:57:58 -05:00
joseLuís
da5f86cc8f rust: rename NcDimension to NcDim; rustfmt 2021-01-08 19:25:46 +01:00
joseLuís
1622375d41 rust: add NCDIRECT_OPTION_NO_QUIT_SIGHANDLERS 2021-01-08 19:22:12 +01:00
joseLuís
1218e8fb7f rust: refactor module header summary info
- refactor headers for Notcurses & NcDirect modules.
2021-01-04 22:13:08 +01:00
joseLuís
6938188b19 rust: NcCell updates
- update NcCell documentation according to last release.
- implement NcCell.load method.
- bonus: remove old "width bias" info from the python bindings.
- bonus: add some (commented out) profile settings to Cargo.toml.
2021-01-04 14:29:56 +01:00
José Luis Cruz
1c12b73a80 remove warning 2021-01-03 19:20:19 -05:00
nick black
69e54bf9e3 rust: drop more wideasian 2021-01-03 19:20:19 -05:00
nick black
a229d64703 purge some wideasian cruft from rust wrappers 2021-01-03 19:20:19 -05:00
joseLuís
5eb8ac0be4 rust: improve documentation 2021-01-03 16:26:26 +01:00
joseLuís
797ef4b0ae rust: more changes and improvements
- raw field of new wrapping structs is now public just to the crate.
- NcNotcurses.stdplane method now doesn't return an NcResult since it can't fail.
- rename NcNotcurses to Notcurses and NcNotcursesOptions to NotcursesOptions.
- rename NcPlane::new_termsize constructor to with_termsize.
- bump MSV to 1.48 for the doc links.
- improve lib documentation.
- minor fixes.
2021-01-03 02:40:41 +01:00
joseLuís
bad3449205 rust: rename Notcurses to FullMode; update doc 2021-01-02 22:58:35 +01:00
joseLuís
f5f9397f7b rust: add new wrapper type over NcDirect called DirectMode. 2021-01-02 22:50:48 +01:00
joseLuís
6b2805937d rust: add new wrapper type over notcurses struct.
Create new wrapping types that can safely encapsulate the mutable references,
and implement Drop and automatic (de)referencing.

- Notcurses
  - rename Notcurses* to NcNotcurses*.
  - rename NotcursesOptions to NcNotcursesOptions.
  - new Notcurses struct.
    - implement Drop, AsRef, AsMut, Deref & DerefMut.
    - override stop method to be no-op.
    - reimplement constructors and associated methods.
  - remove without_altscreen_with_banners constructor.
- update examples and tests.
- rustfmt.
2021-01-02 19:45:15 +01:00
joseLuís
9323f17d92 rust: keep improving errors & fix some return types
- add more string messages to error! macro invocations for NcPlane & NcCell methods.
- refactor NcPlane.base() to return the NcCell.
- fix cell_prime & NcCell.prime to accept gcluster as &str, as well as cells_load_box.
- fix several return types (u32 instead of NcDimension for counting).
2021-01-01 21:49:34 +01:00
joseLuís
9156cec58f rust: add handy constructors for NcChannel
- fix direct-cursor example.
2021-01-01 20:56:30 +01:00
joseLuís
500456e2e5 rust: continue working on the poc-menu example.
- change return type of NcMenu.selected to Option.
- change type to &str in ncplane_set_base.
- bonus: update some comments.
2021-01-01 14:17:01 +01:00
joseLuís
1d4653e7c8 rust: rename NcInput's new() to new_empty(); add new() 2021-01-01 13:59:30 +01:00
joseLuís
a29e9f0014 rust: fix ncdirect_getc_blocking(), and corresponding method 2021-01-01 13:06:59 +01:00
joseLuís
8c29276c70 rust: improve some comments 2020-12-31 03:56:36 +01:00
joseLuís
5e7bf86b9c rust: almost complete poc-menu example, still has bugs.
- add NcMenuSection::new_separator() constructor.
- rename constructor method for an empty NcInput to new();
- fix notcurses_getc_blocking() function name and error logic.
- improve comments.
- change type of NCMENU_OPTION_* to u64 (like in C API)
- fix error_str![] macro.
- improve error messages.
2020-12-31 00:11:49 +01:00
joseLuís
31e7305ce8 rust: start improving errors reporting.
- refactor error![] macro, switch place for $msg & $ok parameters.
- add more meaningful NcError return values in several functions related with poc-menu example, for starters.
- the poc-menu example now doesn't randomly fail, IDKW but OK I guess.
- minor unrelated corrections.
2020-12-30 19:11:55 +01:00
joseLuís
8e5e60f588 rust: Continue with poc-menu example.
- add NcPlane.pustr_aligned() method.
- disable notcurses_stddim_yx* functions & methods for now.
- make input argument optional for notcurses_getc_nblocking().
- update full-basics example.
- fix comments.
2020-12-30 18:40:54 +01:00
joseLuís
624bee6d71 rust: add most NcCell methods
- add & fix comments.
- add methods links.
2020-12-30 00:48:09 +01:00
joseLuís
7b4c105fdf rust: finish updating rust for ncdirect changes
- update function and method names.
- update intra-doc links.
- update examples.
2020-12-29 02:56:01 +01:00
nick black
a7b131a11c
update rust for ncdirect changes 2020-12-28 20:15:26 -05:00
joseLuís
ff2a22a9a9 rust: Finish adding NcChannel* methods.
- make channels_set[f|b]g_rgb() functions (and corresponding methods) return the NcChannelPair, taking advantage of the fact that those functions can't fail in Rust.
- documentation fixes.
- fix NCSCALE definition typo.
2020-12-28 17:59:27 +01:00
joseLuís
b6c84cfce2 rust: more 2.1.2 catch-ups
- deprecate old ncdirect_style_* functions.
- add `NCSCALE_*_HIRES` constants.
- BONUS: update ncdirect_raster_frame, removed parameters.
2020-12-28 13:47:44 +01:00
joseLuís
5d90e7de15 rust: update more NcPlane methods' return type to NcResult.
- rustfmt, comments…
2020-12-27 20:27:46 +01:00
joseLuís
9dda358364 rust: make modifications to match v2.1.2
- add new ffi::functions: ncplane_resize_maximize, notcurses_cansextant,
- substitute rust reimplementions of ncplane_at_cursor_cell & ncplane_at_yx_cell by ffi ones.
- substitute ncvisual_default_blitter by ncvisual_defblitter.
- rename cell style functions
2020-12-27 19:55:13 +01:00
joseLuís
55d49a43f6 rust: continue NcMenu PoC example; fixes
- modify ncmenu constructor Accept &mut[] instead of Vec<> to avoid FFI related problems. Furthermore, from rust 1.48 it's easy to convert a Vec into an array using the std::convert::TryInto trait.
- fix ncmenu method names.
- fix & refactor Notcurses contructors; add `with_debug` constructor.
- make NcPlane.set_base receive a char instead of a reference, since it's copy.
- add `rre` cargo alias for running examples on release.
2020-12-27 19:00:32 +01:00
joseLuís
a880eaf018 rust: new NcMenu PoC example & more error refactoring.
- new example poc-menu (WIP).
- improve constructors for NcMenu*.
- divide NcMenu* methods into submodules.
- fix return type for NcPlane constructors.
- use NcResult on functions returning references.
- fix a couple of Notcurses methods.
- add more NcChannelPair methods.
- refactor NcInput constructors.
- rename error_ptr![] to error_ref_mut![]
- new macro cstring_mut![].
- new error_ref![] macro.
- update examples & tests.
- bump version in readme.
2020-12-26 20:29:06 +01:00
joseLuís
2762e9e561 rust: refactor errors for NcPlane & NcReader.
- add ncplane_new_bound_test helper function.
- update examples & tests as needed.
- rustfmt & minor fixes.
2020-12-26 07:34:26 +01:00
joseLuís
e966348321 rust: add NcMenu methods & fix error_ptr macro 2020-12-26 06:16:54 +01:00
joseLuís
e75432fcf2 rust: deprecate ncvisual_default_blitter 2020-12-26 05:46:05 +01:00
joseLuís
05d5c36622 rust: remove integration tests
- they really are unit tests.
- move version test to its right place.
- BONUS: add rstring![] macro.
2020-12-26 05:41:17 +01:00
joseLuís
fbe4352233 rust: refactor sleep macros
- receive a variable number of arguments.
- make rsleep use methods and deal with NcResult.
- new fsleep to flush an NcDirect context.
- fix macro usages in examples.
2020-12-26 05:14:27 +01:00
joseLuís
763f3efdc5 rust: continue refactoring the error system.
- deal with null()|null_mut() being returned from
  functions, previously ignored.
- new macros: error_ptr & error_str to deal with
  functions returning *mut T & *const c_char into
  NcResult<&mut T> or NcResult<String>, respectively.
2020-12-26 03:58:55 +01:00
joseLuís
bef4f534e9 rust: fix missing imports 2020-12-25 23:12:08 +01:00
joseLuís
36e81a573a rust: finish NcDirect & Notcurses methods.
- add missing NcDirect methods: raster_frame & render_frame.
- finish refactoring Notcurses methods.
  - turn more Option returns into NcResult.
2020-12-25 20:10:31 +01:00
joseLuís
6049e07d27 rust: continue refactoring the error system.
- made const NotcursesOptions constructors.
- refactor Notcurses constructors to return NcResult.
- pass NotcursesOptions by value, since it's Copy.
- update tests.
- add helper modules for Notcurses & NcPlane.
  - new initialization functions to be used in tests.
- BONUS:
  - refactor NcDirect
  - update examples.
2020-12-25 19:35:21 +01:00
joseLuís
b12abeddc9 rust: finish NcDirect error system refactor
- change Option return type for NcResult when appropriate.
- make NcDirect constructors return NcResult.
- rename NcError::new() to with_msg() and simplify new().
- refactor examples:
  - rename direct-image.rs to direct-image-c.rs
  - recreate using rust methods, as direct-image-rust.rs
  - differentiate more throughly between both styles.
  - remove the sys namespace on both examples.
2020-12-25 17:41:02 +01:00
joseLuís
1687af89e0 rust: refactor error system.
We need to use Result<> to manage error flow,
at least on the methods API. This way it will
finally feel idiomatic Rust and more concise.
Also, we can't return a non Result from main.

- rename NcResult to NcIntResult.
- new NcError & NcResult types.
- new error![] macro to reduce boilerplate.
- change return type of NcDirect methods to NcResult.
  - refactor several examples to return NcResult:
    direct-cursor, poc-direct & poc-kittyzapper.
- BONUS: fix test not stopping notcurses context.
- update lib doc-comment.
- fix typo in readme.
2020-12-25 05:16:34 +01:00
joseLuís
ab2675b358 rust: add poc-direct example
- fix NcDirect dim_[y|x] methods.
- add NcDirect.dim_yx() method.
2020-12-24 19:56:12 +01:00
joseLuís
a9413eafb2 rust: add poc-kittyzapper example
- fix ncdirect_[b|f]g_rgb8 functions.
- fix NcDirect.bg_rgb8 method.
- new printf![] macro.
2020-12-24 18:40:33 +01:00
joseLuís
3c8328c9cc rust: add all NcDirect methods.
- add missing ncdirect_* static inline functions.
- update Notcurses.getc().
- add NcTime constructor.
- add NcSigSet type + constructor.
- minor fixes.
2020-12-24 18:02:33 +01:00
joseLuís
7d53abc1b1 rust: finish Notcurses methods & fix tests 2020-12-24 03:24:39 +01:00
joseLuís
b62c1ec74b rust: refactor NcCell constructors 2020-12-24 03:04:46 +01:00
joseLuís
815507293d rust: fix tests 2020-12-23 22:12:04 +01:00
joseLuís
bf7f5de745 rust: fix putchar related methods.
- refactor NcCell constructors.
- add Notcurses.term_dim_yx method.
- reduce name imports.
- fix comments.
2020-12-23 21:49:36 +01:00
joseLuís
ca38d9109e rust: add NcCell Methods.
- improve some apis.
- made some functions const.
- add comments and intra-doc links.
- fix comments.
2020-12-23 20:07:25 +01:00
joseLuís
bda47b7403 rust: add methods for NcResizeCb & NcPalette.
- fix intra-doc links.
- refactor palette module.
2020-12-23 18:45:19 +01:00
joseLuís
1afa9cc1db rust: add more methods.
- add NcChannel & NcChannelPair methods.
- add more NcPlane methods.
- add comments and intra-links.
- refactor intra-links style in all modules.
2020-12-23 13:38:28 +01:00
joseLuís
3be38890c9 rust: refactor input module.
- unify NcInput & NcKey in the same module.
- fix lifetimes issue.
2020-12-23 00:40:28 +01:00
joseLuís
298f250ee8 rust: refactor unsafe functions.
- remove unneeded unsafe.
- simplify lifetimes.
- fix ncplane_gradient_sized.
- fix NcChannelPair
- fix comments.
- rustfmt.
2020-12-23 00:27:29 +01:00
joseLuís
af11b123fa rust: add NcProgBar widget 2020-12-23 00:12:30 +01:00
joseLuís
4c048ef625 rust: finish adding Notcurses methods. 2020-12-22 15:17:50 +01:00
joseLuís
fa693a89c1 rust: add most Notcurses methods.
- fix some comments.
2020-12-22 15:01:07 +01:00
joseLuís
fd1b81c0f8 rust: add NcPixel methods.
- finish updating the functions.
2020-12-21 21:15:10 +01:00
joseLuís
0db4e48a6b rust: endianess updates for NcPixel & NcCell
- Update NcPixel functions, and their descriptions.
- Update NcPixel constructor.
2020-12-21 20:34:50 +01:00
joseLuís
6752741982 rust: add dynamic linesig control
- add new functions notcurses_linesigs_disable & notcurses_linesigs_enable.
- fix comments.
2020-12-21 16:44:04 +01:00
joseLuís
de56912cc4 rust: keep adding NcPlane methods & more
- new type NcResizeCb.
- new functions ncresizecb_safe & ncresizecb_unsafe.
- update NcPlaneOptions constructors.
- Improve & fix comments.
2020-12-20 18:56:46 +01:00
joseLuís
183d6473cd rust: continue adding NcPlane methods.
- add new module fade.
  - new type NcFadeCb.
  - move NcFadeCtx here.
- add TOC for NcPlane methods sections.
- fix & improve comments.
- remove deprecated ncplane functions.
2020-12-20 00:30:46 +01:00
joseLuís
84987b61a9 rust: refactor ncbox, ncalign; add NcPlane methods.
- wrap NCBOX* constants.
- new NcBoxMask type.
- new NCRESULT_MAX const.
- add NcPlane box & perimeter methods.
- move NcAlign to notcurses mod.
- update notcurses_align & test.
- improve comments.
- rustfmt.
2020-12-19 18:01:28 +01:00
joseLuís
493298f0f1 rust: new dimension types & NcPlane methods.
- add new NcDimension and NcOffset types.
- add more NcPlane methods.
- remove NcPlane methods:
  - ncplane_put_egc.
- add missing NCKEY_ESC and NCKEY_SPACE keycodes.
- add notcurses methods: getc_nblock.
- fix comments.
- rustfmt.
2020-12-19 03:44:55 +01:00
joseLuís
2957893da9 rust: update cell tests; minor doc fix 2020-12-17 22:03:05 +01:00
joseLuís
7f175cf37c rust: NcCell width-aware constructors #1203 #1205 2020-12-17 12:10:36 +01:00
joseLuís
4cca3ddd48 rust: working on input
- make char: all NCKEY_* constants.
- make const fn: nckey_mouse_p, ncinput_equal_p & NcInput::new.
- make rsleep!() return the notcurses_render() result.
- new Notcurses constructor with_flags().
- new example: full-input.rs.
- fix comments.
2020-12-16 23:15:29 +01:00
Nick Black
6106dea18a
track+use width for polycolumn EGCs #1203 (#1205)
Some EGCs are more than 2 columns (wcwidth() never returns more than 2, so far as i can tell, but when multiple characters combine, we use the sum). An example would be ကြေ (Myanmar) which occupies three columns over the course of three characters. Track the width (biased by 1) in cell->width, taking over 8 bits from cell->reserved. Use this width in rasterization. Closes #1203.
2020-12-12 22:25:08 -05:00
joseLuís
b229f0247c rust: update some comments 2020-12-09 17:17:30 +01:00
nick black
10c8dec7c0
fix up notcurses_debug rust test #1189 2020-12-08 05:46:44 -05:00
joseLuís
ac29cab8e4 rust: fix documentation building; #1125
- Preparing to host the documentation in the github pages, at least until
- libnotcurses-sys can get into Ubuntu 20.
- fix Cargo.toml, add documentation link.
- update documentation link in README.
- improve lib doc comment, among others.
2020-12-06 17:59:32 +01:00
joseLuís
a0e1577b56 rust: fix comments 2020-12-06 11:40:07 +01:00
joseLuís
96eaa29484 rust: add lib doc comments with examples 2020-12-06 11:00:41 +01:00
joseLuís
c46c06a2e9 rust: move NcScale & NcVisual to visual module 2020-12-06 10:59:19 +01:00
joseLuís
01f7434a9a rust: rename bindgen module to ffi 2020-12-05 18:55:10 +01:00
joseLuís
d19c753227 rust: use cstring macro instead of CString function 2020-12-05 04:04:02 +01:00
joseLuís
57d2eddbf5 rust: more refactoring, channel methods, new macro.
- add NcChannel methods
- add the `NcChannelMethods` Trait to be able to use them,
  since you can't implement methods over a primitive otherwise, unlike over a struct like NcPlane. And NcChannel is a type alias of `u32`.
- create more channel functions, to set the r,g,b separately.
- made some functions const
- add new rsleep![] macro, for rendering before sleeping.
- improve doc comments.
- fix previous commits.
2020-12-05 03:54:52 +01:00
joseLuís
5def609c73 rust: add stats methods 2020-12-05 03:48:55 +01:00
joseLuís
e822e85a14 rust: Drop trait doesn't work with &muts; del impls 2020-12-05 01:58:24 +01:00
joseLuís
2483771af1 rust: Don't derive the Copy trait
- implement the Drop trait for the all the obvious types.
- resolve lifetime issues revealed from not being Copy.
  - return
2020-12-05 01:32:51 +01:00
joseLuís
6ad18bfa7b rust: refactoring and corrections.
- reorder cell, ncchannel & ncplane reimplemented functions.
- minor fixes and corrections.
- improve doc comments.
2020-12-04 13:31:30 +01:00
joseLuís
01e4f7de5a rust: big refactor
- move tests to their own submodules
- move functions reimplementations to reimplemented submodule.
- remove types submodules and move them to their parent.
- add more NcPlane & Notcurses methods
- rename NcChar back to NcEgc, and NcCharBackstop tp NcEgcBackstop
- add ncpile_top & ncpile_bottom functions.
- fix Notcurses stdplane(_mut) methods
- make cell_load_char not return anything since it was always 1.
2020-12-04 02:26:11 +01:00
joseLuís
38bdc627a4 rust: more refactoring
- new macros module, with sleep![] and cstring![] macros.
- rename NCell constructors.
- more plane methods.
- improve doc comments.
2020-12-03 04:30:13 +01:00
joseLuís
4ea2ccc51d rust: more refactor and fixes
- create some more notcurses tests.
- rename `constructors` submodules to `wrapped`.
- fix ncplane_str so to accept &str.
- implement some rusty methods for NcPlane, as a POC.
- improve multiple doc comments.
2020-12-03 02:22:21 +01:00
joseLuís
24640eb80e rust: big modules refactor
- remove the types module, and move the types definitions
  into submodules
- improve multiple comments
2020-12-02 14:01:09 +01:00
joseLuís
1206a281ec rust: keep refactoring and improving docs
- remove the use of inline code markings inside rustdoc [`links`],
  because they are too visually distracting.
- Use descriptive language in the doc comments, instead of imperative.
- Rename NcChannels to NcChannelPair, for improved clarity.
- Improve more comments, add inner links.
- Improve some tests.
- separate tests and constructors into submodules for cells and channels
2020-12-02 02:12:12 +01:00
joseLuís
279f36ec93 rust: more tests, refactors & improvements
- separate tests and constructors into submodules for cells and channels
- add missing functions channels_set_bg_palindex & channels_set_fg_palindex
- fix bug in channel_palindex_p function
- wrap NCSTYLE_* constants
- add more missing cell tests
- improve many doc comments
- fix some types
2020-12-01 19:26:51 +01:00
joseLuís
e2ec27d413 rust: more tests, refactors & improvements
- add ncplane_putchar_yx & ncplane_putchar static functions
- complete test for channel_default_p
- add more tests for ncplane
- separate tests and constructors into submodules for ncplane and notcurses
- make public FILE_NC & FILE_LIBC
- improve integration tests.
- clean & rustfmt
- add constant NCRESULT_OK, NCRESULT_ERR and use them to refer to
  the NcResult values when appropriate
2020-11-30 20:03:49 +01:00
joseLuís
059007bd50 rust: more improvements
- fix bindings module, by not making public the wrapped bindgen types
- add notcurses_stddim_yx_const()
- fix return types of TODO
- add plane constructor new() wrapping ncpile_create()
- add plane constructor new_bound() wrapping ncplane_create()
- add plane constructor new_termsize() wrapping ncpile_create() with the terminal size
- add plane doc comment
2020-11-28 23:25:06 +01:00
joseLuís
b64a257ecf rust: replace cell macros with constructors
- add NcCell constructors: new(), new_blank(), with_char()
- remove cell initializer macros
- update full-basics example
- add more doc comments
2020-11-26 19:17:08 +01:00
joseLuís
58c3d66c15 rust: add ncpile funcs & upd function-summary
- add functions ncpile_create, ncpile_render, ncpile_rasterize
- add new script tools/blame-nick.sh
- upd script tools/function-summary.sh and the generated data
- upd bindgen version
2020-11-26 13:31:04 +01:00
joseLuís
657da94887 rust: add MSRV
- make a little change to ensure MSRV 1.40.0
- show MSRV (Minimum Supported Rust Version) in README
- show up-to-date state of crate dependencies in README
- update comments
2020-11-26 11:36:44 +01:00
nick black
ebc80915a3 c++/rust struck #1138 2020-11-25 20:04:14 -05:00
joseLuís
433068a5ae rust: further types cleanup
- made sigset_t private.
- made FILE_LIBC & FILE_NC private.
- add NCMETRIC_ prefix to the related constants.
- Improve more comments.
2020-11-25 14:01:25 +01:00
joseLuís
8b6495a894 rust: rename type aliases for consistency
Rename all bound types so that they start by Nc (and constants by NC),
except Notcurses:

- rename Cell to NcCell.
- rename CELL_* constants to NCCELL_*.
- rename Channel to NcChannel & Channels to NcChannels.
- rename CHANNEL_* constants to NCCHANNEL_*.
- rename Egc to NcChar & EgcBackstop to NcCharBackstop.
- rename Palette to NcPalette & PaletteIndex to NcPaletteIndex.
- rename IntResult to NcResult.
- rename Color to NcColor.
- rename Rgb to NcRgb.
- rename AlphaBits to NcAlphaBits.
- rename StyleMask to NcStyleMask.
- rename LIBC_FILE to FILE_LIBC & NC_FILE to FILE_NC.

Also:
- new type NcTime for timespec.
- rustfmt.
2020-11-25 13:27:45 +01:00
joseLuís
1dda2d7d58 rust: add new functions
- ncpile_create
- ncplane_reparent_family
- ncplane_resizecb
2020-11-25 10:50:31 +01:00
joseLuís
e23cd63aac rust: improve comments
- use new syntax for doclinks
- improve some comments
- add README
2020-11-20 20:17:37 +01:00
nick black
7fa89b45da rust: unfuck ncaligns #1115 2020-11-17 23:42:36 -05:00
nick black
9ce821a045 [headscratch] 2020-11-17 23:42:36 -05:00
nick black
ee019b2d5a rust: clear all mention of ncplane->horiz #1115 2020-11-17 23:42:36 -05:00
nick black
bc245e09fc rust: drop ncplane_options__bindgen_ty_1 2020-11-17 23:42:36 -05:00
joseLuís
4de2652f8d rust: more fixes and improvements
- fix notcurses_init unit test
- fix fn call name: `nplane_at_cursor_cell` → `ncplane_at_cursor_cell`.
- make LIBC_FILE & NC_FILE type aliases with doc comment.
- add lib module comment.
- improve direct-cursor example.
- fix full-text example and rename it to full-basics.
2020-11-18 02:43:29 +01:00
joseLuís
9fe0363937 rust: improve testing
- add new alias `t_all` for running every test even if some fail.
- call it from `.drone.yml` to have more complete testing picture.
- add a new test for `notcurses_init` as the first test.
2020-11-18 01:48:54 +01:00
joseLuís
1f77571174 rust: cleanup
- remove deprecated functions ncplane_new & nctablet_ncplane
- fix some comments
- run rustfmt
2020-11-17 11:40:58 +01:00
joseLuís
9563c9e02e rust: new NcFile type to wrap libc::FILE
The notcurses FILE type (`NC_FILE`) is imported via bindgen as a struct,
while the equivalent Rust libc::FILE (`LIBC_FILE`) is an opaque enum.
Several methods are provided to convert back and forth between both types,
so it works both with rust libc operations and notcurses file I/O operations.

- new notcurses_debug() test as the first usage of `NcFile`
2020-11-17 01:44:29 +01:00
joseLuís
2e47618a6a rust: 2+ notcurses convenience constructors 2020-11-16 18:06:15 +01:00
joseLuís
08b000de28 rust: remove no_std; fix #1119 2020-11-15 22:43:22 +01:00