emio icon indicating copy to clipboard operation
emio copied to clipboard

Define a stable API

Open Viatorus opened this issue 2 years ago • 1 comments

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"

Viatorus avatar Dec 08 '22 20:12 Viatorus