A safe and fast high-level and low-level character input/output library for bare-metal and RTOS based embedded systems with a very small binary footprint.
Doesn't need to be 100 % non breakable but it would be good to make some basic decisions.
Every help is welcome! :)
[ ] is the naming of classes and functions plausible
[ ] reader APi
read_char, read_n_chars, read_int<int>?
[ ] writer API
explicit write_char(char), write_str(str), write_int(int) instead of implicit write(char), write(str), write(int)....
[ ] emio::err does not have a explicit value for success (zero) - is this okay? I think, it does make switches over emio::err simpler since no one should receive a zero out of a emio::result
[x] Should there be support for anything else then char? --> NO
[x] wchar? char8_t? char16_t? char32_t? Does this make sense?
[x] if not, many classes could be template free
[x] if needed, would it be better to have reader<char> or using reader = basic_reader<char>; (same for writer, runtime etc...)?
[x] Should format/vformat/print/vprint internal call value to simplify nearly fail-safe API?
[ ] explict emio::result constructor with ok/error + basic_result for user error types
[x] Format spec: allow precision for strings: format("{:.2}", "hello") -> "he"
Doesn't need to be 100 % non breakable but it would be good to make some basic decisions.
Every help is welcome! :)
[ ] is the naming of classes and functions plausible
read_char, read_n_chars, read_int<int>?
write_char(char), write_str(str), write_int(int)
instead of implicitwrite(char), write(str), write(int)
....[ ] emio::err does not have a explicit value for success (zero) - is this okay? I think, it does make switches over
emio::err
simpler since no one should receive a zero out of a emio::result[x] Should there be support for anything else then char? --> NO
reader<char>
orusing reader = basic_reader<char>;
(same for writer, runtime etc...)?[ ] explict emio::result constructor with ok/error + basic_result for user error types
[x] Format spec: allow precision for strings:
format("{:.2}", "hello")
-> "he"