pub trait Document<C>: Sizedwhere
    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>where C: SerializedCollection,

Retrieves contents through deserialization into the type D.

source

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

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 OwnedDocumentwhere C: Collection,

§

type Bytes = Vec<u8>