9 using value_type = std::uint8_t;
10 using delete_function = void (*)(value_type*);
11 using size_type = std::size_t;
12 using pointer = value_type*;
13 using const_pointer =
const value_type*;
14 using iterator = value_type*;
15 using const_iterator =
const value_type*;
18 delete_function m_func;
20 LLAPI Deleter()
noexcept;
21 LLAPI
explicit Deleter(delete_function f)
noexcept;
22 LLAPI
void operator()(value_type* p)
const noexcept;
25 using pointer_type = std::unique_ptr<value_type[], Deleter>;
32 static void defaultDeleter(value_type* p)
noexcept;
35 LLNDAPI
Blob() noexcept;
36 LLNDAPI explicit
Blob(size_type size);
37 LLNDAPI
Blob(const value_type* ptr, size_type size);
40 LLNDAPI
Blob(pointer_type&& ptr, size_type size) noexcept;
43 LLAPI
Blob& operator=(
Blob&& rhs) noexcept;
45 LLNDAPI iterator begin() noexcept;
46 LLNDAPI iterator end() noexcept;
47 LLNDAPI const_iterator cbegin() const noexcept;
48 LLNDAPI const_iterator cend() const noexcept;
50 LLNDAPI
bool empty() const noexcept;
51 LLNDAPI size_type size() const noexcept;
52 LLNDAPI size_type max_size() const noexcept;
53 LLNDAPI pointer data() noexcept;
54 LLNDAPI const_pointer data() const noexcept;
55 LLNDAPI pointer get() noexcept;
56 LLNDAPI const_pointer get() const noexcept;
57 LLNDAPI pointer_type release() noexcept;
59 LLNDAPI gsl::span<
unsigned char> getSpan();
60 LLNDAPI gsl::span<const
unsigned char> getSpan() const;
62 LLAPI
void fillBlob(
std::uint8_t val);
63 LLAPI
void swap(
Blob& other) noexcept;