This was supposed to be the implementation of best::fmt, but I had to put together two significant prerequisites and it ended up feeling like it should be its own thing. This change adds
best::strbuf and best::textbuf, our owning string type.
best::result, our version of Result, and functions for constructing one out of a best::option.
best::row_forward, the canonical way to flatten a tuple into some kind of call.
best::text::operator<=>
BEST_GUARD(), our version of Rust's try!()/? and Abseil's RETURN_IF_ERROR().
This was supposed to be the implementation of
best::fmt
, but I had to put together two significant prerequisites and it ended up feeling like it should be its own thing. This change addsbest::strbuf
andbest::textbuf
, our owning string type.best::result
, our version ofResult
, and functions for constructing one out of abest::option
.best::row_forward
, the canonical way to flatten a tuple into some kind of call.best::text::operator<=>
BEST_GUARD()
, our version of Rust'stry!()
/?
and Abseil'sRETURN_IF_ERROR()
.best::encoding_error
.