83 BLOB (
BLOB&& src)
noexcept =
default;
84 BLOB (
const BLOB& src)
noexcept =
default;
86 template <ranges::range CONTAINER_OF_BYTE>
88 requires (is_convertible_v<typename CONTAINER_OF_BYTE::value_type, byte> or
89 is_convertible_v<typename CONTAINER_OF_BYTE::value_type, uint8_t>);
90 BLOB (span<const byte> s);
91 BLOB (
const byte* start,
const byte*
end);
92 BLOB (
const uint8_t* start,
const uint8_t*
end);
93 BLOB (
const initializer_list<pair<const byte*, const byte*>>& startEndPairs);
94 BLOB (
const initializer_list<BLOB>& list2Concatenate);
95 BLOB (
const initializer_list<byte>& bytes);
96 BLOB (
const initializer_list<uint8_t>& bytes);
102 explicit BLOB (
const shared_ptr<_IRep>& rep);
103 explicit BLOB (shared_ptr<_IRep>&& rep);
108 nonvirtual
BLOB& operator= (
BLOB&& rhs)
noexcept =
default;
109 nonvirtual
BLOB& operator= (
const BLOB& rhs) =
default;
169 template <Common::trivially_copyable T>
171 template <Common::trivially_copyable T>
173 template <Common::trivially_copyable T>
175 requires (same_as<typename char_traits<T>::char_type, T>);
176 template <Common::trivially_copyable T>
178 requires (same_as<typename char_traits<T>::char_type, T>);
179 template <Common::trivially_copyable T>
193 template <
typename BYTEISH,
size_t EXTENT = dynamic_extent>
194 static BLOB Attach (span<BYTEISH, EXTENT> s)
195 requires (convertible_to<BYTEISH, const byte> or convertible_to<BYTEISH, const uint8_t>);
196 template <
typename BYTEISH,
size_t EXTENT>
197 static BLOB Attach (BYTEISH (&
data)[EXTENT])
198 requires (convertible_to<BYTEISH, const byte> or convertible_to<BYTEISH, const uint8_t>);
207 static BLOB AttachAndDelete (
const byte* s,
size_t arrayLen);
213 nonvirtual
byte operator[] (
const size_t i)
const;
219 nonvirtual
bool empty ()
const;
238 template <
typename T>
239 nonvirtual T
As () const
240#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
243 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>
244 or is_trivially_copyable_v<T>
261 template <
typename STRING_TYPE = Characters::String>
262 nonvirtual STRING_TYPE
AsHex (
size_t maxBytesToShow = numeric_limits<size_t>::max ()) const
263#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
264 requires (same_as<Characters::String, STRING_TYPE>)
279 template <
typename STRING_TYPE = Characters::String>
281#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
282 requires (same_as<Characters::String, STRING_TYPE>)
285 template <
typename STRING_TYPE = Characters::String>
286 nonvirtual STRING_TYPE
AsBase64 (
const Cryptography::Encoding::Algorithm::Base64::Options& o)
const
287#if !qCompilerAndStdLib_template_requires_doesnt_work_with_specialization_Buggy
288 requires (same_as<Characters::String, STRING_TYPE>)
304 nonvirtual
BLOB Repeat (
unsigned int count)
const;
312 nonvirtual
BLOB Slice (
size_t startAt,
size_t endAt)
const;
319 nonvirtual
const byte*
begin ()
const;
326 nonvirtual
const byte*
end ()
const;
332 nonvirtual
size_t GetSize ()
const;
337 nonvirtual strong_ordering operator<=> (
const BLOB& rhs)
const;
342 nonvirtual
bool operator== (
const BLOB& rhs)
const;
345 static strong_ordering TWC_ (
const BLOB& lhs,
const BLOB& rhs);
351 nonvirtual
const byte*
data ()
const;
357 nonvirtual
size_t size ()
const;
363 nonvirtual
size_t length ()
const;
384 [[deprecated (
"Since Stroika v3.0d5 use span overload")]]
static BLOB FromHex (
const char* s,
const char* e);
385 template <
typename T>
386 [[deprecated (
"Since Stroika v3.0d5 - use As/0")]]
void As (T* into)
const
388 *into = this->As<T> ();
390 [[deprecated (
"Since Stroika v3.0d4 use span")]]
static BLOB Attach (
const byte* start,
const byte*
end)
392 return Attach (span{start,
end});
394 [[deprecated (
"Since Stroika v3.0d4 use Attach")]]
static BLOB AttachApplicationLifetime (
const byte* start,
const byte*
end)
396 return Attach (span{start,
end});
398 template <
size_t SIZE>
399 [[deprecated (
"Since Stroika v3.0d4 use Attach")]]
static BLOB AttachApplicationLifetime (
const byte (&
data)[SIZE])
401 return Attach (span{
data, SIZE});
403 template <
typename... ARGS>
404 [[deprecated (
"Since Stroika v3.0d5 use FromHex")]]
static BLOB Hex (ARGS... args)
408 template <
typename... ARGS>
409 [[deprecated (
"Since Stroika v3.0d5 use FromRaw")]]
static BLOB Raw (ARGS... args)
418 struct AdoptAndDeleteRep_;
421 [[no_unique_address]] Debug::AssertExternallySynchronizedMutex fThisAssertExternallySynchronized_;
422 shared_ptr<_IRep> fRep_;