Skip to main content

VersionedKeyStore

Struct VersionedKeyStore 

Source
pub struct VersionedKeyStore { /* private fields */ }
Expand description

Versioned key store. Each key maps to an ordered list of versions (newest first). The first entry is the “latest” version for any key.

Implementations§

Source§

impl VersionedKeyStore

Source

pub fn put(&mut self, object: S3Object)

Insert an object, generating a new version ID and prepending to the version list.

Source

pub fn get(&self, key: &str) -> Option<&S3Object>

Get the current object for a key.

Returns None if the key doesn’t exist or if the latest version is a delete marker (per S3 semantics, the object appears deleted).

Source

pub fn get_version(&self, key: &str, version_id: &str) -> Option<&S3Object>

Get a specific version of an object.

Source

pub fn get_mut(&mut self, key: &str) -> Option<&mut S3Object>

Get a mutable reference to the current (latest non-delete-marker) object.

Source

pub fn get_version_mut( &mut self, key: &str, version_id: &str, ) -> Option<&mut S3Object>

Get a mutable reference to a specific version of an object.

Source

pub fn is_delete_marker(&self, key: &str, version_id: &str) -> bool

Check if a specific version ID for a key is a delete marker.

Source

pub fn delete(&mut self, key: &str, owner: &Owner) -> (Option<String>, bool)

Delete an object by inserting a delete marker at the front.

Returns (version_id_of_marker, had_real_object).

Source

pub fn delete_version( &mut self, key: &str, version_id: &str, ) -> Option<ObjectVersion>

Remove a specific version (object or delete marker) entirely.

Source

pub fn len(&self) -> usize

Count of keys that have at least one non-delete-marker version as their latest entry.

Source

pub fn is_empty(&self) -> bool

Whether the store contains zero entries (no versions or delete markers).

This checks if the underlying BTreeMap is completely empty, which is the correct semantics for DeleteBucket (AWS requires all versions and delete markers to be removed before bucket deletion).

Source

pub fn list_objects( &self, prefix: &str, delimiter: &str, start_after: &str, max_keys: usize, ) -> ListResult

List the latest non-delete-marker object for each key.

Source

pub fn list_object_versions( &self, prefix: &str, delimiter: &str, key_marker: &str, version_id_marker: &str, max_keys: usize, ) -> VersionListResult

List all versions (objects and delete markers).

Trait Implementations§

Source§

impl Debug for VersionedKeyStore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for VersionedKeyStore

Source§

fn default() -> VersionedKeyStore

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more