84 BLOB (
BLOB&& src)
noexcept =
default;
85 BLOB (
const BLOB& src)
noexcept =
default;
87 template <ranges::range CONTAINER_OF_BYTE>
89 requires (is_convertible_v<typename CONTAINER_OF_BYTE::value_type, byte> or
90 is_convertible_v<typename CONTAINER_OF_BYTE::value_type, uint8_t>);
91 BLOB (span<const byte> s);
92 BLOB (span<const uint8_t> s);
93 BLOB (
const byte* start,
const byte*
end);
94 BLOB (
const uint8_t* start,
const uint8_t*
end);
95 BLOB (
const initializer_list<pair<const byte*, const byte*>>& startEndPairs);
96 BLOB (
const initializer_list<BLOB>& list2Concatenate);
97 BLOB (
const initializer_list<byte>& bytes);
98 BLOB (
const initializer_list<uint8_t>& bytes);
104 explicit BLOB (
const shared_ptr<_IRep>& rep);
105 explicit BLOB (shared_ptr<_IRep>&& rep);
110 nonvirtual
BLOB& operator= (
BLOB&& rhs)
noexcept =
default;
111 nonvirtual
BLOB& operator= (
const BLOB& rhs) =
default;
171 template <Common::trivially_copyable T>
173 template <Common::trivially_copyable T>
175 template <Common::trivially_copyable T>
177 requires (same_as<typename char_traits<T>::char_type, T>);
178 template <Common::trivially_copyable T>
180 requires (same_as<typename char_traits<T>::char_type, T>);
181 template <Common::trivially_copyable T>
195 template <
typename BYTEISH,
size_t EXTENT = dynamic_extent>
196 static BLOB Attach (span<BYTEISH, EXTENT> s)
197 requires (convertible_to<BYTEISH, const byte> or convertible_to<BYTEISH, const uint8_t>);
198 template <
typename BYTEISH,
size_t EXTENT>
199 static BLOB Attach (BYTEISH (&
data)[EXTENT])
200 requires (convertible_to<BYTEISH, const byte> or convertible_to<BYTEISH, const uint8_t>);
209 static BLOB AttachAndDelete (
const byte* s,
size_t arrayLen);
215 nonvirtual
byte operator[] (
const size_t i)
const;
221 nonvirtual
bool empty ()
const;
240 template <
typename T>
241 nonvirtual T
As () const
242#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
245 Common::IAnyOf<T,span<const byte>,span<const uint8_t>, pair<const byte*, const byte*>, pair<const uint8_t*, const uint8_t*>, vector<byte> ,vector<uint8_t>,
Streams::InputStream::Ptr<byte>,
string>
246 or is_trivially_copyable_v<T>
263 template <
typename STRING_TYPE = Characters::String>
264 nonvirtual STRING_TYPE
AsHex (
size_t maxBytesToShow = numeric_limits<size_t>::max ()) const
265#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
266 requires (same_as<Characters::String, STRING_TYPE>)
281 template <
typename STRING_TYPE = Characters::String>
283#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
284 requires (same_as<Characters::String, STRING_TYPE>)
287 template <
typename STRING_TYPE = Characters::String>
288 nonvirtual STRING_TYPE
AsBase64 (
const Cryptography::Encoding::Algorithm::Base64::Options& o)
const
289#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
290 requires (same_as<Characters::String, STRING_TYPE>)
306 nonvirtual
BLOB Repeat (
unsigned int count)
const;
314 nonvirtual
BLOB Slice (
size_t startAt,
size_t endAt)
const;
321 nonvirtual
const byte*
begin ()
const;
328 nonvirtual
const byte*
end ()
const;
334 nonvirtual
size_t GetSize ()
const;
339 nonvirtual strong_ordering operator<=> (
const BLOB& rhs)
const;
344 nonvirtual
bool operator== (
const BLOB& rhs)
const;
347 static strong_ordering TWC_ (
const BLOB& lhs,
const BLOB& rhs);
353 nonvirtual
const byte*
data ()
const;
359 nonvirtual
size_t size ()
const;
365 nonvirtual
size_t length ()
const;
386 [[deprecated (
"Since Stroika v3.0d5 use span overload")]]
static BLOB FromHex (
const char* s,
const char* e);
387 template <
typename T>
388 [[deprecated (
"Since Stroika v3.0d5 - use As/0")]]
void As (T* into)
const
390 *into = this->As<T> ();
392 [[deprecated (
"Since Stroika v3.0d4 use span")]]
static BLOB Attach (
const byte* start,
const byte*
end)
394 return Attach (span{start,
end});
396 [[deprecated (
"Since Stroika v3.0d4 use Attach")]]
static BLOB AttachApplicationLifetime (
const byte* start,
const byte*
end)
398 return Attach (span{start,
end});
400 template <
size_t SIZE>
401 [[deprecated (
"Since Stroika v3.0d4 use Attach")]]
static BLOB AttachApplicationLifetime (
const byte (&
data)[SIZE])
403 return Attach (span{
data, SIZE});
405 template <
typename... ARGS>
406 [[deprecated (
"Since Stroika v3.0d5 use FromHex")]]
static BLOB Hex (ARGS... args)
410 template <
typename... ARGS>
411 [[deprecated (
"Since Stroika v3.0d5 use FromRaw")]]
static BLOB Raw (ARGS... args)
420 struct AdoptAndDeleteRep_;
423 [[no_unique_address]] Debug::AssertExternallySynchronizedMutex fThisAssertExternallySynchronized_;
424 shared_ptr<_IRep> fRep_;