pub struct Archive { /* private fields */ }Expand description
A read and write handle on the archive, with the operator’s key prefix applied.
Implementations§
Source§impl Archive
impl Archive
Sourcepub fn open(args: &ArchiveArgs) -> Result<Self, BackupError>
pub fn open(args: &ArchiveArgs) -> Result<Self, BackupError>
Build the handle the --archive-* flags describe.
§Errors
Returns BackupError::InvalidArgument when the flags contradict each
other, and BackupError::ObjectStore when the backend builder rejects
the bucket, region, endpoint, or credentials.
Sourcepub fn key(&self, relative: &str) -> Path
pub fn key(&self, relative: &str) -> Path
The absolute object key for a path relative to the archive root.
Sourcepub async fn put(
&self,
relative: &str,
bytes: Vec<u8>,
) -> Result<(), BackupError>
pub async fn put( &self, relative: &str, bytes: Vec<u8>, ) -> Result<(), BackupError>
Write one object, overwriting whatever was there.
§Errors
Returns BackupError::ObjectStore when the write fails.
Sourcepub async fn put_new(
&self,
relative: &str,
bytes: Vec<u8>,
) -> Result<(), BackupError>
pub async fn put_new( &self, relative: &str, bytes: Vec<u8>, ) -> Result<(), BackupError>
Create a capture object, refusing to replace an existing object.
§Errors
Returns BackupError::ObjectStore when the key already exists or the write fails.
Sourcepub async fn get(&self, relative: &str) -> Result<Vec<u8>, BackupError>
pub async fn get(&self, relative: &str) -> Result<Vec<u8>, BackupError>
Read one object whole.
§Errors
Returns BackupError::ObjectStore when the object is absent or the
read fails.
Sourcepub async fn get_capped(
&self,
relative: &str,
max_bytes: u64,
) -> Result<Vec<u8>, BackupError>
pub async fn get_capped( &self, relative: &str, max_bytes: u64, ) -> Result<Vec<u8>, BackupError>
Read an archive-relative object within an independent byte limit.
§Errors
Returns BackupError::ObjectStore when the object is absent, exceeds max_bytes, changes during the read, or cannot be read.
Sourcepub async fn get_absolute_capped(
&self,
key: &str,
max_bytes: u64,
) -> Result<Vec<u8>, BackupError>
pub async fn get_absolute_capped( &self, key: &str, max_bytes: u64, ) -> Result<Vec<u8>, BackupError>
Read an exact object key, refusing oversized bodies before buffering.
§Errors
Returns BackupError::ObjectStore when the object is absent, exceeds
max_bytes, or cannot be read.
Sourcepub async fn child_directories(
&self,
relative: &str,
) -> Result<BTreeSet<String>, BackupError>
pub async fn child_directories( &self, relative: &str, ) -> Result<BTreeSet<String>, BackupError>
The distinct directory names one level below relative.
Object stores have no directories, so this lists the keys under the prefix and keeps the segment that follows it. An empty listing is an empty set rather than an error: a bucket that has never been captured into is not a failure, and the caller says what that means.
§Errors
Returns BackupError::ObjectStore when the listing fails.
Auto Trait Implementations§
impl !RefUnwindSafe for Archive
impl !UnwindSafe for Archive
impl Freeze for Archive
impl Send for Archive
impl Sync for Archive
impl Unpin for Archive
impl UnsafeUnpin for Archive
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<F> FnGhost for F
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);