- 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
- 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
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.
- 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.
- 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.
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`
- new NcPlane & NcPlaneOptions constructors.
- new NcHoriz enum for NcPlaneOptions horiz parameter.
- Make NCPLANE_OPTION_HORALIGNED u64 for consistency with expected value type.
- make Notcurses `new()` constructor not output banners.
- add an additional constructor `with_banners()`.
- add new aliases for running examples silently.
- improve comments & run rustfmt.
- 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.
- separate the `types` module into submodules to improve clarity & maintenance.
- more constructors for NcMenu, NcMenuItem, NcMenuSection, NcMenuOptions.
- add more missing docs, specially for constants
- 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
- 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
- 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.
- 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.
- 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.
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.
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.
- 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
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`.