pub trait Document<C>: Sized
where C: Collection,
{ type Bytes; // Required methods fn id(&self) -> &DocumentId; fn header(&self) -> AnyHeader<C::PrimaryKey>; fn set_header(&mut self, header: Header) -> Result<(), Error>; fn bytes(&self) -> Result<Vec<u8>, Error>; fn contents(&self) -> Result<C::Contents, Error> where C: SerializedCollection; fn set_contents(&mut self, contents: C::Contents) -> Result<(), Error> where C: SerializedCollection; // Provided method fn set_collection_header( &mut self, header: CollectionHeader<C::PrimaryKey> ) -> Result<(), Error> { ... } }
Expand description

Common interface of a document in BonsaiDb.

Required Associated Types§

source

type Bytes

The bytes type used in the interface.

Required Methods§

source

fn id(&self) -> &DocumentId

Returns the unique key for this document.

source

fn header(&self) -> AnyHeader<C::PrimaryKey>

Returns the header of this document.

source

fn set_header(&mut self, header: Header) -> Result<(), Error>

Sets the header to the new header.

source

fn bytes(&self) -> Result<Vec<u8>, Error>

Returns the contents of this document, serialized.

source

fn contents(&self) -> Result<C::Contents, Error>

Retrieves contents through deserialization into the type D.

source

fn set_contents(&mut self, contents: C::Contents) -> Result<(), Error>

Stores contents into this document.

Provided Methods§

source

fn set_collection_header( &mut self, header: CollectionHeader<C::PrimaryKey> ) -> Result<(), Error>

Sets the header to the new collection header.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, C> Document<C> for BorrowedDocument<'a>
where C: Collection,

§

type Bytes = CowBytes<'a>

source§

impl<C> Document<C> for OwnedDocument
where C: Collection,

§

type Bytes = Vec<u8>