[go: up one dir, main page]

Trait Write

Source
pub trait Write {
    // Required method
    fn write_stream(
        &self,
        kind: Kind,
        size: u64,
        from: &mut dyn Read,
    ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>;

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

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

Required Methods§

Source

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

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: &dyn WriteTo, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

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, Box<dyn Error + Send + Sync>>

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

Implementations on Foreign Types§

Source§

impl Write for Store

Source§

fn write_buf( &self, kind: Kind, from: &[u8], ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Write the given buffer in from to disk in one syscall at best.

This will cost at least 4 IO operations.

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Write the given stream in from to disk with at least one syscall.

This will cost at least 4 IO operations.

Source§

fn write( &self, object: &dyn WriteTo, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

impl Write for Sink

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

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

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

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

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

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

Source§

fn write( &self, object: &dyn WriteTo, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

fn write_buf( &self, object: Kind, from: &[u8], ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

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

Source§

fn write( &self, object: &dyn WriteTo, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

fn write_buf( &self, object: Kind, from: &[u8], ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

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

Source§

fn write( &self, object: &dyn WriteTo, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

fn write_buf( &self, object: Kind, from: &[u8], ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Source§

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

Source§

fn write_stream( &self, kind: Kind, size: u64, from: &mut dyn Read, ) -> Result<ObjectId, Box<dyn Error + Send + Sync>>

Implementors§