20 #include <bsoncxx/array/view.hpp> 
   21 #include <bsoncxx/document/value.hpp> 
   23 #include <bsoncxx/config/prelude.hpp> 
   26 BSONCXX_INLINE_NAMESPACE_BEGIN
 
   36     using deleter_type = void (*)(std::uint8_t*);
 
   37     using unique_ptr_type = std::unique_ptr<uint8_t[], deleter_type>;
 
   51     value(std::uint8_t* data, std::size_t length, deleter_type dtor);
 
   62     value(unique_ptr_type ptr, std::size_t length);
 
   90     BSONCXX_INLINE 
operator array::view() 
const noexcept;
 
  101     unique_ptr_type release();
 
  104     unique_ptr_type _data;
 
  105     std::size_t _length{0};
 
  109     return array::view{
static_cast<uint8_t*
>(_data.get()), _length};
 
  117 BSONCXX_INLINE_NAMESPACE_END
 
  120 #include <bsoncxx/config/postlude.hpp>