Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Writer.cpp
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#include "Stroika/Foundation/StroikaPreComp.h"
5
8#include "Stroika/Foundation/Streams/MemoryStream.h"
10
11#include "Writer.h"
12
13using std::byte;
14
15using namespace Stroika::Foundation;
17using namespace Stroika::Foundation::Streams;
18
19/*
20 ********************************************************************************
21 ******************************* Variant::Writer ********************************
22 ********************************************************************************
23 */
25{
26 MemoryStream::Ptr<byte> buf = MemoryStream::New<byte> ();
27 f (buf);
28 return buf.As<Memory::BLOB> ();
29}
30
32{
33 MemoryStream::Ptr<Characters::Character> buf = MemoryStream::New<Characters::Character> ();
34 f (buf);
35 return buf.As<String> ();
36}
37
39{
40 return Streams::iostream::OutputStreamFromStdOStream::New<byte> (out);
41}
42
44{
45 return Streams::iostream::OutputStreamFromStdOStream::New<Characters::Character> (out);
46}
47
49{
50 return _WriteAsBLOBHelper ([&v, this] (const OutputStream::Ptr<byte>& out) { Write (v, out); });
51}
52
54{
55 return _WriteAsStringHelper ([&v, this] (const OutputStream::Ptr<Characters::Character>& out) { Write (v, out); });
56}
String is like std::u32string, except it is much easier to use, often much more space efficient,...
Definition String.h:201
nonvirtual String WriteAsString(const VariantValue &v) const
Definition Writer.cpp:53
nonvirtual Memory::BLOB WriteAsBLOB(const VariantValue &v) const
Definition Writer.cpp:48
static String _WriteAsStringHelper(const function< void(Streams::OutputStream::Ptr< Characters::Character >)> &f)
Definition Writer.cpp:31
static Memory::BLOB _WriteAsBLOBHelper(const function< void(Streams::OutputStream::Ptr< byte >)> &f)
Definition Writer.cpp:24
static Streams::OutputStream::Ptr< Characters::Character > _WrapTextOutput(const Streams::OutputStream::Ptr< Characters::Character > &out)
static Streams::OutputStream::Ptr< byte > _WrapBinaryOutput(const Streams::OutputStream::Ptr< byte > &out)
Simple variant-value (case variant union) object, with (variant) basic types analogous to a value in ...
OutputStream<>::Ptr is Smart pointer to a stream-based sink of data.