4#include "Stroika/Foundation/Streams/TextToBinary.h"
6namespace Stroika::Foundation::DataExchange::Variant {
13 inline Reader::_SharedPtrIRep Reader::_Rep_Cloner::operator() (
const _IRep& t)
const
23 inline Reader::Reader (
const shared_ptr<_IRep>& rep)
28 inline optional<filesystem::path> Reader::GetDefaultFileSuffix ()
const
31 return fRep_->GetDefaultFileSuffix ();
36 return fRep_->Read (in);
41 return fRep_->Read (in);
45 return Read (_ToCharacterReader (in));
47 inline VariantValue Variant::Reader::Read (istream& in)
49 return Read (_ToByteReader (in));
51 inline VariantValue Variant::Reader::Read (wistream& in)
53 return Read (_ToCharacterReader (in));
55 inline Reader::_IRep& Reader::_GetRep ()
59 return *fRep_.
rwget ();
61 inline const Reader::_IRep& Reader::_GetRep ()
const
64 return *fRep_.
cget ();
72 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 ...
nonvirtual const element_type * cget() const noexcept
nonvirtual element_type * rwget()
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.