4#include "Stroika/Foundation/Streams/TextToBinary.h"
6namespace Stroika::Foundation::DataExchange::Variant {
13 inline Reader::Reader (
const shared_ptr<const _IRep>& rep)
18 inline optional<filesystem::path> Reader::GetDefaultFileSuffix ()
const
21 return fRep_->GetDefaultFileSuffix ();
26 return fRep_->Read (in);
31 return fRep_->Read (in);
35 return Read (_ToCharacterReader (in));
37 inline VariantValue Variant::Reader::Read (istream& in)
const
39 return Read (_ToByteReader (in));
41 inline VariantValue Variant::Reader::Read (wistream& in)
const
43 return Read (_ToCharacterReader (in));
45 inline const Reader::_IRep& Reader::_ConstGetRep ()
const
56 return Streams::TextToBinary::Reader::New (in);
#define RequireNotNull(p)
static Streams::InputStream::Ptr< byte > _ToByteReader(const Streams::InputStream::Ptr< byte > &in)
simple helper so subclasses can more easily provide varied Read overloads
static Streams::InputStream::Ptr< Characters::Character > _ToCharacterReader(const Streams::InputStream::Ptr< Characters::Character > &in)
simple helper so subclasses can more easily provide varied Read overloads
Simple variant-value (case variant union) object, with (variant) basic types analogous to a value in ...
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.