Trait git_odb::Write

source ·
pub trait Write {
    type Error: Error + From<Error>;

    // Required method
    fn write_stream(
        &self,
        kind: Kind,
        size: u64,
        from: impl Read
    ) -> Result<ObjectId, Self::Error>;

    // Provided methods
    fn write(&self, object: impl WriteTo) -> Result<ObjectId, Self::Error> { ... }
    fn write_buf(
        &self,
        object: Kind,
        from: &[u8]
    ) -> Result<ObjectId, Self::Error> { ... }
}
Expand description

Describe the capability to write git objects into an object store.

Required Associated Types§

source

type Error: Error + From<Error>

The error type used for all trait methods.

Note the default implementations require the From<io::Error> bound.

Required Methods§

source

fn write_stream( &self, kind: Kind, size: u64, from: impl Read ) -> Result<ObjectId, Self::Error>

As write, but takes an input stream. This is commonly used for writing blobs directly without reading them to memory first.

Provided Methods§

source

fn write(&self, object: impl WriteTo) -> Result<ObjectId, Self::Error>

Write objects using the intrinsic kind of hash into the database, returning id to reference it in subsequent reads.

source

fn write_buf(&self, object: Kind, from: &[u8]) -> Result<ObjectId, Self::Error>

As write, but takes an object kind along with its encoded bytes.

Implementations on Foreign Types§

source§

impl<T> Write for Arc<T>where T: Write,

§

type Error = <T as Write>::Error

source§

fn write(&self, object: impl WriteTo) -> Result<ObjectId, Self::Error>

source§

fn write_buf(&self, object: Kind, from: &[u8]) -> Result<ObjectId, Self::Error>

source§

fn write_stream( &self, kind: Kind, size: u64, from: impl Read ) -> Result<ObjectId, Self::Error>

source§

impl<T> Write for Rc<T>where T: Write,

§

type Error = <T as Write>::Error

source§

fn write(&self, object: impl WriteTo) -> Result<ObjectId, Self::Error>

source§

fn write_buf(&self, object: Kind, from: &[u8]) -> Result<ObjectId, Self::Error>

source§

fn write_stream( &self, kind: Kind, size: u64, from: impl Read ) -> Result<ObjectId, Self::Error>

source§

impl<T> Write for &Twhere T: Write,

§

type Error = <T as Write>::Error

source§

fn write(&self, object: impl WriteTo) -> Result<ObjectId, Self::Error>

source§

fn write_buf(&self, object: Kind, from: &[u8]) -> Result<ObjectId, Self::Error>

source§

fn write_stream( &self, kind: Kind, size: u64, from: impl Read ) -> Result<ObjectId, Self::Error>

Implementors§

source§

impl Write for Store

§

type Error = Error

source§

impl Write for Sink

§

type Error = Error

source§

impl<S> Write for Handle<S>where S: Deref<Target = Store> + Clone,

§

type Error = Error

source§

impl<S> Write for Cache<S>where S: Write,

§

type Error = <S as Write>::Error