Commit Graph

546 Commits (4a23acab2d3a0e1acc5c70895619dfdf2acb548a)

Author SHA1 Message Date
nick black e617acecc7
v2.1.4 4 years ago
José Luis Cruz 1c12b73a80 remove warning 4 years ago
nick black 69e54bf9e3 rust: drop more wideasian 4 years ago
nick black a229d64703 purge some wideasian cruft from rust wrappers 4 years ago
joseLuís 5eb8ac0be4 rust: improve documentation 4 years ago
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.
4 years ago
joseLuís bad3449205 rust: rename Notcurses to FullMode; update doc 4 years ago
joseLuís f5f9397f7b rust: add new wrapper type over NcDirect called DirectMode. 4 years ago
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.
4 years ago
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).
4 years ago
joseLuís 3bf9f11c80 rust: improve direct-cursor example.
- add `rand` as a dev-dependency.
4 years ago
joseLuís 9156cec58f rust: add handy constructors for NcChannel
- fix direct-cursor example.
4 years ago
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.
4 years ago
joseLuís 1d4653e7c8 rust: rename NcInput's new() to new_empty(); add new() 4 years ago
joseLuís a29e9f0014 rust: fix ncdirect_getc_blocking(), and corresponding method 4 years ago
nick black 70b74a749b
v2.1.3 4 years ago
joseLuís 8c29276c70 rust: improve some comments 4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
joseLuís 624bee6d71 rust: add most NcCell methods
- add & fix comments.
- add methods links.
4 years ago
joseLuís 7b4c105fdf rust: finish updating rust for ncdirect changes
- update function and method names.
- update intra-doc links.
- update examples.
4 years ago
nick black a7b131a11c
update rust for ncdirect changes 4 years ago
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.
4 years ago
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.
4 years ago
joseLuís 5d90e7de15 rust: update more NcPlane methods' return type to NcResult.
- rustfmt, comments…
4 years ago
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
4 years ago
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.
4 years ago
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.
4 years ago
nick black 55d563b646
v2.1.2 4 years ago
joseLuís 2762e9e561 rust: refactor errors for NcPlane & NcReader.
- add ncplane_new_bound_test helper function.
- update examples & tests as needed.
- rustfmt & minor fixes.
4 years ago
joseLuís e966348321 rust: add NcMenu methods & fix error_ptr macro 4 years ago
joseLuís e75432fcf2 rust: deprecate ncvisual_default_blitter 4 years ago
joseLuís 05d5c36622 rust: remove integration tests
- they really are unit tests.
- move version test to its right place.
- BONUS: add rstring![] macro.
4 years ago
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.
4 years ago
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.
4 years ago
joseLuís bef4f534e9 rust: fix missing imports 4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
joseLuís 5d1dfe1d02 rust fix poc-direct; update readme deps badge 4 years ago
joseLuís ab2675b358 rust: add poc-direct example
- fix NcDirect dim_[y|x] methods.
- add NcDirect.dim_yx() method.
4 years ago
joseLuís a9413eafb2 rust: add poc-kittyzapper example
- fix ncdirect_[b|f]g_rgb8 functions.
- fix NcDirect.bg_rgb8 method.
- new printf![] macro.
4 years ago
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.
4 years ago
joseLuís 7d53abc1b1 rust: finish Notcurses methods & fix tests 4 years ago
joseLuís b62c1ec74b rust: refactor NcCell constructors 4 years ago
joseLuís 815507293d rust: fix tests 4 years ago
joseLuís c07b68f783 rust: add example poc-cjkscroll 4 years ago
joseLuís bf7f5de745 rust: fix putchar related methods.
- refactor NcCell constructors.
- add Notcurses.term_dim_yx method.
- reduce name imports.
- fix comments.
4 years ago
joseLuís ca38d9109e rust: add NcCell Methods.
- improve some apis.
- made some functions const.
- add comments and intra-doc links.
- fix comments.
4 years ago
joseLuís bda47b7403 rust: add methods for NcResizeCb & NcPalette.
- fix intra-doc links.
- refactor palette module.
4 years ago
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.
4 years ago
joseLuís 3be38890c9 rust: refactor input module.
- unify NcInput & NcKey in the same module.
- fix lifetimes issue.
4 years ago
joseLuís 298f250ee8 rust: refactor unsafe functions.
- remove unneeded unsafe.
- simplify lifetimes.
- fix ncplane_gradient_sized.
- fix NcChannelPair
- fix comments.
- rustfmt.
4 years ago
joseLuís af11b123fa rust: add NcProgBar widget 4 years ago
joseLuís 4c048ef625 rust: finish adding Notcurses methods. 4 years ago
joseLuís fa693a89c1 rust: add most Notcurses methods.
- fix some comments.
4 years ago
joseLuís fd1b81c0f8 rust: add NcPixel methods.
- finish updating the functions.
4 years ago
joseLuís 0db4e48a6b rust: endianess updates for NcPixel & NcCell
- Update NcPixel functions, and their descriptions.
- Update NcPixel constructor.
4 years ago
joseLuís 6752741982 rust: add dynamic linesig control
- add new functions notcurses_linesigs_disable & notcurses_linesigs_enable.
- fix comments.
4 years ago
joseLuís 240b58d52b rust: update msrv in readme 4 years ago
joseLuís de56912cc4 rust: keep adding NcPlane methods & more
- new type NcResizeCb.
- new functions ncresizecb_safe & ncresizecb_unsafe.
- update NcPlaneOptions constructors.
- Improve & fix comments.
4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
joseLuís 2957893da9 rust: update cell tests; minor doc fix 4 years ago
joseLuís 7f175cf37c rust: NcCell width-aware constructors #1203 #1205 4 years ago
nick black 2d07bbee59
Merge branch 'master' of github.com:dankamongmen/notcurses 4 years ago
nick black d6d5757b1d
v2.1.1 4 years ago
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.
4 years ago
nick black 6edafd1f84
v2.1.0 4 years ago
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.
4 years ago
nick black 8497ee1877
v2.0.12 4 years ago
joseLuís b229f0247c rust: update some comments 4 years ago
nick black eb485cda21
v2.0.11 4 years ago
nick black 10c8dec7c0
fix up notcurses_debug rust test #1189 4 years ago
nick black 361a253aea
v2.0.10 4 years ago
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.
4 years ago
joseLuís 98d86ec286 rust: remove cc build dep. & stdout.c file; #355 4 years ago
joseLuís a0e1577b56 rust: fix comments 4 years ago
joseLuís 96eaa29484 rust: add lib doc comments with examples 4 years ago
joseLuís c46c06a2e9 rust: move NcScale & NcVisual to visual module 4 years ago
joseLuís 01f7434a9a rust: rename bindgen module to ffi 4 years ago
joseLuís d19c753227 rust: use cstring macro instead of CString function 4 years ago
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.
4 years ago
joseLuís 5def609c73 rust: add stats methods 4 years ago
joseLuís e822e85a14 rust: Drop trait doesn't work with &muts; del impls 4 years ago
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
4 years ago
joseLuís 6ad18bfa7b rust: refactoring and corrections.
- reorder cell, ncchannel & ncplane reimplemented functions.
- minor fixes and corrections.
- improve doc comments.
4 years ago
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.
4 years ago
joseLuís 38bdc627a4 rust: more refactoring
- new macros module, with sleep![] and cstring![] macros.
- rename NCell constructors.
- more plane methods.
- improve doc comments.
4 years ago
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.
4 years ago
joseLuís 24640eb80e rust: big modules refactor
- remove the types module, and move the types definitions
  into submodules
- improve multiple comments
4 years ago
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
4 years ago
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
4 years ago
nick black 8083b46e3b
v2.0.9 4 years ago
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
4 years ago
joseLuís a4e7513b11 rust: downgrade bindgen & pkg-config #355 4 years ago
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
4 years ago
nick black 2a45620cd6
v2.0.8 4 years ago
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
4 years ago
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
4 years ago
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
4 years ago
nick black ebc80915a3 c++/rust struck #1138 4 years ago
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.
4 years ago
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.
4 years ago
joseLuís 1dda2d7d58 rust: add new functions
- ncpile_create
- ncplane_reparent_family
- ncplane_resizecb
4 years ago
nick black 73b2f1bf19
v2.0.7 4 years ago
nick black acdcf9e41f
v2.0.6 4 years ago
nick black 537caa2173
v2.0.5 4 years ago
joseLuís e23cd63aac rust: improve comments
- use new syntax for doclinks
- improve some comments
- add README
4 years ago
nick black 7fa89b45da rust: unfuck ncaligns #1115 4 years ago
nick black 9ce821a045 [headscratch] 4 years ago
nick black ee019b2d5a rust: clear all mention of ncplane->horiz #1115 4 years ago
nick black bc245e09fc rust: drop ncplane_options__bindgen_ty_1 4 years ago
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.
4 years ago
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.
4 years ago
joseLuís 1f77571174 rust: cleanup
- remove deprecated functions ncplane_new & nctablet_ncplane
- fix some comments
- run rustfmt
4 years ago
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`
4 years ago
joseLuís 107cb05fce rust: refactor examples 4 years ago
joseLuís 2e47618a6a rust: 2+ notcurses convenience constructors 4 years ago
joseLuís 08b000de28 rust: remove no_std; fix #1119 4 years ago
joseLuís d9a74dab26 rust: start adding notcurses tests 4 years ago
joseLuís 00f5001342 rust: ncplane constructors
- new NcPlane & NcPlaneOptions constructors.
- new NcHoriz enum for NcPlaneOptions horiz parameter.
- Make NCPLANE_OPTION_HORALIGNED u64 for consistency with expected value type.
4 years ago
nick black 259b2b6012
make it clear that sixel is not yet supported 4 years ago
nick black 7622cefc3a
v2.0.4 4 years ago
joseLuís 04882971a2 rust: more refactoring
- make Notcurses `new()` constructor not output banners.
- add an additional constructor `with_banners()`.
- add new aliases for running examples silently.
- improve comments & run rustfmt.
4 years ago
nick black 0d31a03be9
v2.0.3 4 years ago
joseLuís 7a164c3009 rust: continue reworking the API & improve documentation
- remove macros module and move macros to types submodules.
- document the macros.
- add ncmetric macros.
- add missing constants for NcVisual and ncmetric.
- add missing function ncstrwidth
- remove types/colors module and move the content to types/channel
- add more doc comments.
4 years ago
joseLuís f22dfd78b5 rust: continue reworking the API & improve documentation
- separate the `types` module into submodules to improve clarity & maintenance.
- more constructors for NcMenu, NcMenuItem, NcMenuSection, NcMenuOptions.
- add more missing docs, specially for constants
4 years ago
joseLuís 08a0da358e rust: continue reworking the API & improve documentation
- remove _IO_FILE import and usage.
- create handy constructors for NcDirect & Notcurses.
  (but can't implement destructors for copy types…).
- when possible substitute mutable pointers `*mut` for mutable references `&mut`
  with associated lifetimes.
- new widgets module, starting with NcReader & NcReaderOptions constructors
4 years ago
joseLuís 965a0771d8 rust: continue reworking the API & improve documentation
- rename `Pixel` to `NcPixel`
- rename `cell_simple_initializer` to `cell_char_initializer`
  and `cell_load_simple` to `cell_load_char`
- create constructor for `NcReader`
- fix and improve documentation for several types.
- Add `NcDirectOptions` struct and `NcDirectOptionHoriz` union
4 years ago
joseLuís 4673a86ea2 rust: API refactor & improve documentation
- rename EGC to Egc, EGCBackstop to EgcBackstop and ChannelPair to Channels.
- make the original type aliased structs non-public (e.g. ncdirect, ncalign…)
- fix and improve documentation for several types.
- revert renaming crate to nc on use.
- directly import the used types at the beginning of the module.

Now the rustdoc generated documentation is much cleaner.
4 years ago
joseLuís d82f0934b3 rust: show inline documentation for curated bindings 4 years ago
joseLuís 27628e961a rust: improve bindings 4 years ago
joseLuís a40cabb9d0 rust: move integration tests out of lib.rs 4 years ago
joseLuís c8316d75ae rust: continue improving bindings and API
- use libc types and functions directly when possible
	- char32_t -> u32 -> char
	- size_t -> u64
	- free()
	- strcmp()
	NOTE: it seems libc::timespec doesn't work with notcurses_getc()
- rename types
  	- Input -> NcInput
	- Scale -> NcScale
- `suppuabize` function is now private.
- `bindings` module is now public.
- improve comments.
4 years ago
joseLuís 98a2fcf336 rust: explicit bindgen imports for a better world 4 years ago
joseLuís 4beec0845f rust: type changes
- rename types in order to make them more similar to the original ones,
  and so that they play better alongside the higher types defined by
  notcurses-rs.
  	- Plane -> NcPlane
	- DirectMode -> NcDirect
	- DirectModeFlags -> NcDirectFlags
	- FullMode -> Notcurses
	- Align -> NcAlign
	- Blitter -> NcBlitter
	- Scale -> NcScale
- make `types` module re-exportable.
- rename nc module to notcurses.
- improve comments.
4 years ago
joseLuís d59d05990b rust: direct mode changes
- rename ncdirect_start to ncdirect_new
- add direct mode option flags
- fix examples
- refactor comments
4 years ago
joseLuís 94827c12a2 rust: update dependencies 4 years ago
joseLuís fed2d7cb9b rust: fix comments 4 years ago
joseLuís e8ff092f50 rust: fix input; add constructor 4 years ago
joseLuís 2f3d99e4e7 rust: fix visual 4 years ago
joseLuís cfb2bf0824 rust: add input module with 1 static function 4 years ago
joseLuís 09bdf6ebd4 rust: add visual module 4 years ago
joseLuís cb16c52eef rust: review functions; update headers 4 years ago
joseLuís 40621b7b95 rust: finish converting missing rgb calls 4 years ago
joseLuís 42250179f3 rust: add `Blitter` and `Scale` types 4 years ago
nick black 8189d21709
v2.0.2 4 years ago
nick black a4546c86e3
v2.0.1 4 years ago
nick black 65974aeb0b
v2.0.0 4 years ago
nick black 8c9611d085
v1.7.6 4 years ago
nick black c6c157a5ad
notcurses_stats_alloc() everywhere 4 years ago
nick black 20a49d053d
v1.7.5 4 years ago
joseLuís bcc5481899 rust: update example
- use ncdirect_flush function for flushing
4 years ago
joseLuís 5be9edd6f4 rust: convert all rgb calls & new plane functions #1024
- add (TBD) ncplane_putchar, ncplane_putchar_yx
- delete ncplane_bound, ncplane_new, ncplane_pusimple & ncplane_putsimple_yx
- rename `.*_[bf]g.*_rgb` → .`*_[bf]g.*_rgb8`
- rename `.*_[bf]g` → .`*_[bf]g.*_rgb`
4 years ago
joseLuís a09ed747ca rust: update example direct-cursor 4 years ago
nick black f02263e977
v1.7.4 4 years ago
nick black 21b8a50da0
rust: s/NCCHANNEL_ALPHA_MASK/CHANNEL_ALPHA_MASK/g 4 years ago
nick black 97dc50db1a kill stray entry in NEWS 4 years ago
nick black 4459efa216
v1.7.3 4 years ago
nick black e42dbdfd60 _stainable() -> _stained() #985 4 years ago
nick black bc097a5674
v1.7.2 4 years ago
nick black 70f062aff5
v1.7.1 4 years ago
nick black 64fe8f6c07
v1.7.0 4 years ago
nick black 4c7a1d0427 ncdirect_init: add flags parameter #976 4 years ago
nick black c93243fd54
v1.6.20 4 years ago
nick black e92b7fd6ea
v1.6.19 4 years ago
nick black 6526e58c00
v1.6.18.4 4 years ago
nick black 6ea73e6e45
v1.6.18.3 4 years ago
nick black 550c02d8ac
v1.6.18.2 4 years ago
nick black d11d8175d0
v1.6.18.1 4 years ago
nick black 6d7f9eb501
v1.6.18 4 years ago
nick black 026b94969d cffi heap allocations are zero-initialized #942 4 years ago
joseLuís 1e6558fed9 new type aliases FullMode & Input 4 years ago
joseLuís 246cde91f9 +notcurses_align & modify ncplane_align #937 4 years ago
nick black 4ebf8f748c
v1.6.16 4 years ago
joseLuís eab553d3d1 rust: update libc 4 years ago
joseLuís 2c1c150969 rust: add more type aliases, format
add new type aliases for: cell, ncplane, palette256, ncalign_e &
ncdirect + alignment constants.
4 years ago
joseLuís ed748a5162 rust: new example: direct cursor
issue: only updates the screen after a newline
4 years ago
joseLuís 8c2d7bc5ac rust: EGC type safe wrapping for real this time 4 years ago
joseLuís 73961c04ce rust: rename ffi:: namespace to nc::
+rustfmt
4 years ago
joseLuís 9dc847c8b5 rust: add simple wrapper over ncdirect_init 4 years ago
joseLuís d17460b875 rust: del uneeded alias 4 years ago
joseLuís e975211a29 rust: even safer casting to char 4 years ago
joseLuís 356b44b015 rust: finish up EGC type safe wrapping. 4 years ago
joseLuís 3e4a074f8f rust: del ncplane_highgradient_sized due to #922 4 years ago
joseLuís cac8202e03 rust: egc char related fixes 4 years ago
joseLuís f25ba1b83c rust: +11 plane functions, ±finishing ncplane.
- Functions ncplane_putw* considered unnecessary from Rust.
- Functions & macros ncplane_printf* pending evaluation.
4 years ago
joseLuís 9b827f22b6 rust: +6 plane functions 4 years ago
joseLuís 915d59fb3e rust: +2 cell functions, finishing cells
- cell_prime and cells_load_box are unsafe fn, until a safer abstraction
  is built around gcluster, to avoid raw pointers dereferencing.
4 years ago
joseLuís 11287b6081 rust: rename types, add cell init macros
- +3 macros: cell_initializer, cell_simple_initializer and
  cell_trivial_initializer
- rename GraphemeCluster to EGC and GraphemeClusterBackStop to
EGCBackstop
- improve EGC doc comments
4 years ago
joseLuís 9c08411e27 rust: rustfmt 4 years ago
joseLuís e324cd404c rust: finish notcurses functions
+4 notcurses functions
4 years ago
joseLuís 154d3ef312 rust: +14 cell functions
WIP: cell_prime & cells_load_box
4 years ago
joseLuís 5eb9dc37d4 rust: finish channel functions
remove channels_blend()
4 years ago
nick black 05da44b06b
hide blending functions #917 4 years ago
joseLuís a4d5817940 rust: cargo clippy alias 4 years ago
joseLuís 18f90e394c rust: +22 cell functions 4 years ago
joseLuís 6cfd3d6ad7 rust: fix clippy compat with bindgen
and fix a couple of lints in plane.rs
4 years ago
joseLuís b1b8400165 rust: +8 plane functions; refactor 4 years ago
joseLuís a5fecf021e rust: update cells code 4 years ago
joseLuís 4382487652 rust: update example 4 years ago
joseLuís 8eefeb2a73 rust: fix builder rerun condition 4 years ago
nick black 49ae79341d
v1.6.15 4 years ago
joseLuís ccac3d033e rust: update types 4 years ago
joseLuís 59546eaf40 rust: update dependency cstr_core; fixes #898 4 years ago
nick black dc99d56ac1
v1.6.14 4 years ago
nick black e897de3700
v1.6.13 4 years ago
nick black 202b88615f
kill ncplane_styles(), duplicates ncplane_attrs() 4 years ago
nick black 8b072c0b5f rust: attrword -> stylemask, u32 -> u16 4 years ago
joseLuís 62e9c28a0a rust: update types info 4 years ago
joseLuís 8c2ed36c3a rust: update types info 4 years ago
joseLuís 9ff74c393a rust: improve types info 4 years ago
joseLuís d9596883d3 rust: make examples no_std compatible too 4 years ago
joseLuís 5ba618d6a8 rust: several fixes
- rename Alpha to AlphaBits
- fix pixel alpha mask
- fix syntax errors
4 years ago
joseLuís 55ad6153d2 rust: add a lot of info about types 4 years ago
joseLuís d3d8051f36 rust: fix channel tests 4 years ago
joseLuís d0f691af5f rust: +8 plane functions; fix headers; minor fixes 4 years ago
joseLuís 4720f23b12 rust: improve some channel functions & comments
Functions `channel_set_alpha()`, `channels_set_fg_alpha()` &
`channels_set_bg_alpha()` don't return an error anymore. Instead
of failing when the alpha value has others bits set, it gets
cleaned of other possible bits with bitmasking.

And in case of trying to use high contrast for the background
alpha gets reset to a default opaque.
4 years ago
joseLuís e1cfe9394f +2 plane functions; fix comments 4 years ago
joseLuís 4ac4f1b09e rust: clean root, move build files inside folder 4 years ago
joseLuís e22232774d rust: add direct-image example 4 years ago
nick black adcabfae52
rust: assimilate #883 4 years ago
nick black 9704f5cbe7
v1.6.12 4 years ago
nick black 1ada631e94 purge rust/notcurses 4 years ago
joseLuís efdb4ba4f1 pass rustfmt & fix typos 4 years ago
joseLuís 03f2e7c871 rust: implement palette functions 4 years ago
joseLuís dbec390fac rust: improve some channel functions
Functions `channel_set()`, `channels_set_fg()`, `channels_set_bg()`
don't return an error anymore. Instead of failing when the rgb value
has any of the last 8 bits set, now it just ignores those bits.
4 years ago
joseLuís 6424e453aa rust: add test modules skeletons 4 years ago
joseLuís ec92d13306 rust: improve info headers 4 years ago
joseLuís da34965fcd rust: implement pixel functions 4 years ago
joseLuís 7790913d2f fix typos & improve comments 4 years ago
joseLuís 8b01f26730 rust: improve info headers for maximum consistency
and implement 1 palette fuction
4 years ago
joseLuís 70adc5645b rust: reimplement keys fns & consts 4 years ago
joseLuís a29fa0395d add handy cargo aliases 4 years ago
joseLuís ba660aa69b make rust bindings no_std compatible, fixes #872 4 years ago
joseLuís 0362a11f63 make it compatible with no_std environment 4 years ago
joseLuís 799407f98c prepare modules for pending work 4 years ago
joseLuís 2f1b4074eb fix & refactor Rust bindings
- move types functions out of lib.rs into their own modules
- add modules types, and for cell & plane functions
- change error handling for consistency with the underlying lib
- reformat the code
4 years ago
José Luis Cruz 92350b4694
turn off doctests
Fixes bindgen errors due to invalid Rust comments imported from functions `ncmultiselector_options` and `ncselector_item`.

Related:
- https://github.com/rust-lang/rust-bindgen/issues/426
- https://github.com/rust-lang/rust-bindgen/issues/1749
4 years ago
joseLuís e9bf400a7e tidy up & update crate deps, categories & keywords 4 years ago
joseLuís 84c637d3e8 copy all comments as doc Rust comments
In principle it would be better to write the comments intented
for documentation as `///` (or `/** */` for multi-line), but
this way it works mostly, without having to change them all.

There are two comments that are not valid Rust doc-comments,
and arerendered badly: The are the ones in:
`ncmultiselector_options` and `ncselector_item`.
4 years ago
joseLuís de643589b1 export all new channel functions 4 years ago
José Luis Cruz 8368380b66
Merge pull request #867
Remove warnings about improper_ctypes
4 years ago
joseLuís 590fbf4f1f move channels.rs to libnotcurses-sys crate 4 years ago
joseLuís 2842ffb751 add remaining channel functions 4 years ago
joseLuís 2e640d4146 rewriting the channels inline functions in Rust 4 years ago