Commit Graph

144 Commits

Author SHA1 Message Date
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