From 379a2b4dc2b8d66dbe834b7775786214f88a1f22 Mon Sep 17 00:00:00 2001 From: ADAM David Alan Martin Date: Thu, 4 Apr 2024 18:07:41 -0400 Subject: [PATCH] Start using the stream adaptor. --- IOStreams/OStreamable.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/IOStreams/OStreamable.h b/IOStreams/OStreamable.h index cf0a153..15c8951 100644 --- a/IOStreams/OStreamable.h +++ b/IOStreams/OStreamable.h @@ -39,15 +39,14 @@ namespace Alepha::Hydrogen::IOStreams ::detail:: OStreamable_m { const auto decomposed= Alepha::Reflection::tuplizeAggregate( ostreamable ); //static_assert( Capability< Agg, exports::OStreamable > ); + auto delim= adaptStream( StartDelimitedList{ []( std::ostream &os ) { os << fieldDelimiter; } }, os ); - bool first= true; + // TODO: Consider the lens system here... but the basic use case seems to be for // aggregates, so we'll go with this simple case for now... tuple_for_each( decomposed ) <=[&]( const auto &element ) { - if( not first ) os << fieldDelimiter; - first= false; - os << element; + os << NextItem << element; }; return os; @@ -58,4 +57,3 @@ namespace Alepha::Hydrogen::IOStreams::inline exports::inline OStreamable_m { using namespace detail::OStreamable_m::exports; } -