pub enum TransferObservationOp {
PauseCapability {
supported: bool,
},
Started {},
Elapsed {
elapsed: Duration,
},
Progress {
destination: PathBuf,
downloaded: u64,
total: Option<u64>,
},
Completed {
destination: PathBuf,
bytes: u64,
},
Failed {
destination: PathBuf,
message: String,
},
ProgramFailed {
summary: String,
detail: String,
},
}Expand description
Represents one TransferObservation operation as pure data.
Variants§
PauseCapability
Represents the pause_capability operation.
Started
Represents the started operation.
Elapsed
Represents the elapsed operation.
Progress
Represents the progress operation.
Fields
Completed
Represents the completed operation.
Failed
Represents the failed operation.
Fields
ProgramFailed
Represents the program_failed operation.
Implementations§
Source§impl TransferObservationOp
impl TransferObservationOp
Sourcepub fn pause_capability(supported: bool) -> Self
pub fn pause_capability(supported: bool) -> Self
Constructs the pause_capability operation.
Sourcepub fn progress(
destination: PathBuf,
downloaded: u64,
total: Option<u64>,
) -> Self
pub fn progress( destination: PathBuf, downloaded: u64, total: Option<u64>, ) -> Self
Constructs the progress operation.
Sourcepub fn program_failed(summary: String, detail: String) -> Self
pub fn program_failed(summary: String, detail: String) -> Self
Constructs the program_failed operation.
Sourcepub fn interpret<Interpreter>(
self,
interpreter: &mut Interpreter,
) -> TransferObservationReplywhere
Interpreter: TransferObservationInterpreter,
pub fn interpret<Interpreter>(
self,
interpreter: &mut Interpreter,
) -> TransferObservationReplywhere
Interpreter: TransferObservationInterpreter,
Interprets this operation with one interpreter and returns its reply.
Trait Implementations§
Source§impl Clone for TransferObservationOp
impl Clone for TransferObservationOp
Source§impl Debug for TransferObservationOp
impl Debug for TransferObservationOp
impl Eq for TransferObservationOp
Source§impl PartialEq for TransferObservationOp
impl PartialEq for TransferObservationOp
impl StructuralPartialEq for TransferObservationOp
Auto Trait Implementations§
impl Freeze for TransferObservationOp
impl RefUnwindSafe for TransferObservationOp
impl Send for TransferObservationOp
impl Sync for TransferObservationOp
impl Unpin for TransferObservationOp
impl UnsafeUnpin for TransferObservationOp
impl UnwindSafe for TransferObservationOp
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<This> IntoExt<This> for This
impl<This> IntoExt<This> for This
Source§fn to<R>(self) -> Rwhere
This: Into<R>,
fn to<R>(self) -> Rwhere
This: Into<R>,
A version of Into::into function that can be used to explicitly specify the target
conversion type.
use alux_sdk::*;
// `Into` requires context to infer the type,
let _: i64 = Into::into(42_i8);
// The opposite `From` requires context to infer the type,
let _: i64 = From::from(42_i8);
// `.to()` can be used in the same way as a postfix function (the same as `.into()`),
let _: i64 = 42_i8.to();
// but also with the type specified explicitly.
let _ = 42_i8.to::<i64>();
// Especially useful to chain multiple conversions inline.
let _: i64 = 42_i8.to::<i16>().to::<i32>().into();Source§impl<This> IntoIteratorExt<This> for This
impl<This> IntoIteratorExt<This> for This
Source§fn try_collect_vec<T, E>(self) -> Result<Vec<T>, E>
fn try_collect_vec<T, E>(self) -> Result<Vec<T>, E>
A variant of the try_collect and collect_vec combined function from the Itertools
library. The materialized value is a Vec inside a Result object.
Returns the first error without collecting later values.
use alux_sdk::*;
let values = [Ok::<_, &str>(1), Ok(2), Ok(3)]
.into_iter()
.try_collect_vec();
assert_eq!(values, Ok(vec![1, 2, 3]));Source§fn collect_exact<T>(self, n: usize) -> Option<Vec<T>>where
This: Iterator<Item = T>,
fn collect_exact<T>(self, n: usize) -> Option<Vec<T>>where
This: Iterator<Item = T>,
Takes exactly n elements from the iterator.
Returns Some(Vec<T>) if the iterator yields exactly n elements,
otherwise returns None.
use alux_sdk::*;
let v = [1, 2, 3];
assert_eq!(v.iter().copied().collect_exact(3), Some(vec![1, 2, 3]));
assert_eq!(v.iter().copied().collect_exact(4), None);
assert_eq!(v.iter().copied().collect_exact(2), None);Source§fn try_unzip<A, B, E>(self) -> Result<(Vec<A>, Vec<B>), E>
fn try_unzip<A, B, E>(self) -> Result<(Vec<A>, Vec<B>), E>
Efficiently splits an iterator of Result<(A, B), E> into two Vecs, short-circuiting on error.
Consumes the iterator, collecting all A elements into one vector and all B elements into another,
without first allocating an intermediate vector of tuples. Returns the tuple (Vec<A>, Vec<B>) on success,
or the first error encountered.
use alux_sdk::*;
let input = vec![Ok((1, "x")), Ok((2, "y"))];
let (xs, ys) = input.try_unzip::<_, _, ()>().unwrap();
assert_eq!(xs, vec![1, 2]);
assert_eq!(ys, vec!["x", "y"]);