pub trait Find {
type Error: Error + 'static;
// Required methods
fn contains(&self, id: impl AsRef<oid>) -> bool;
fn try_find<'a>(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8>
) -> Result<Option<Data<'a>>, Self::Error>;
}
Expand description
Describe how object can be located in an object store.
Notes
Find effectively needs generic associated types to allow a trait for the returned object type. Until then, we will have to make due with explicit types and give them the potentially added features we want.
Required Associated Types§
sourcetype Error: Error + 'static
type Error: Error + 'static
The error returned by try_find()
Required Methods§
sourcefn contains(&self, id: impl AsRef<oid>) -> bool
fn contains(&self, id: impl AsRef<oid>) -> bool
Returns true if the object exists in the database.
sourcefn try_find<'a>(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8>
) -> Result<Option<Data<'a>>, Self::Error>
fn try_find<'a>( &self, id: impl AsRef<oid>, buffer: &'a mut Vec<u8> ) -> Result<Option<Data<'a>>, Self::Error>
Find an object matching id
in the database while placing its raw, possibly encoded data into buffer
.
Returns Some
object if it was present in the database, or the error that occurred during lookup or object
retrieval.