pub trait ObjectStore {
// Required methods
fn get_object(&self, object_id: &ObjectID) -> Option<Object>;
fn get_object_by_key(
&self,
object_id: &ObjectID,
version: VersionNumber,
) -> Option<Object>;
// Provided methods
fn multi_get_objects(&self, object_ids: &[ObjectID]) -> Vec<Option<Object>> { ... }
fn multi_get_objects_by_key(
&self,
object_keys: &[ObjectKey],
) -> Vec<Option<Object>> { ... }
}