Comments (5)
Adding support for fmtlib here: #244
There is so much to re-implement for display and fmt is high quality and widely used. I think it's the right path, so adding support for formatting of each type.
I need to look further into:
- display vs debug printing
- printing types without a formatter as a string of bytes
- so that
Option<unknown>
can printSome(...bytes...)
- add a PrintTo() for anything that is fmtlib formattable.
- maybe provide a stream impl for anything fmtlib formattable as well in a separate compat header.
from subspace.
There is no debug vs display differentiation in fmtlib.
We could add to parse() to look for a ?
formatting character so you could write {:?}
and get different behaviour. At the moment there's nothing that I would print differently and you don't get the distinction of a type being Debug
but not Display
. It would have to be Display
in order to maybe also be Debug
. In which case it's not worth doing anything with until we have types we want to print differently in a debug mode than in a "display" mode. But then.. those are normally types that are only Debug
and in this case they'd have to be Display and just the user would not get nice stuff from them. Unless Debug was a long multiline thing and Display was a short thing? idk I don't see it yet, we can consider using the ?
formatting character if we need it on a per-type basis or for all subspace types.
from subspace.
subspace/string/compat_stream.h will allow streaming of any (public) subspace type that is formattable.
from subspace.
For some reason the stream operator is not being picked up and used by GTest's ADL mechanisms on MSVC and it's breaking my brain. The decltype stuff for SFINAE all resolves when I reproduce it myself. Not sure if this is a blocker issue or what.
OK it was caching problems due to one TU seeing the operator<< template and one TU not, and compilers cacheing the first resulting GTest template for that type. Resolved by putting the operator<< template in prelude.h which it can do with just iosfwd.
Since we have operator<< there is no need for PrintTo.
from subspace.
I think #244 is sufficient to close this issue.
from subspace.
Related Issues (20)
- Cow type (Clone-on-write)
- Use seto to look for overflow
- Optimize storage for Result with NeverValueField HOT 1
- Compile-time option for overflow checks
- Add `c_int` and `c_uint` portability helper type
- TryFrom<ToType, FromType> should be satisfied for all From<ToType, FromType>
- Rewrite Tuple's impl to not be recursive HOT 1
- Provide Tuple::as_ref and as_mut
- DynIterator type erasure
- Think about Vec construction from variadics
- Iterator::collect should ideally support conversions HOT 1
- Nested classes missing in Subdoc
- Generate nested classes/enums. Where to display them?
- Friend decls are showing up in the overload set
- Subdoc fails with missing modmap files HOT 8
- Implement Error for string/string_view HOT 1
- compat_ headers are an ODR nightmare HOT 1
- Option::as_slice and as_mut_slice HOT 2
- Mark Slice and SliceMut as O(1) to construct via std::ranges::enable_view
- Add clang 19 bots and fix clang 18 bots HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from subspace.