pub struct ProcessingSyntax;Expand description
Reifies processing programs as ordered inspectable syntax.
Trait Implementations§
Source§impl Clone for ProcessingSyntax
impl Clone for ProcessingSyntax
impl Copy for ProcessingSyntax
Source§impl Debug for ProcessingSyntax
impl Debug for ProcessingSyntax
Source§impl Default for ProcessingSyntax
impl Default for ProcessingSyntax
Source§impl ProcessingProgramAlg for ProcessingSyntax
impl ProcessingProgramAlg for ProcessingSyntax
Source§fn processing_step(
&self,
stage: ProcessingStage,
processor: Self::Processor,
) -> Self::Step
fn processing_step( &self, stage: ProcessingStage, processor: Self::Processor, ) -> Self::Step
Source§fn empty_processing(&self) -> Self::Program
fn empty_processing(&self) -> Self::Program
Source§fn processing(
&self,
steps: impl IntoIterator<Item = Self::Step>,
) -> Self::Program
fn processing( &self, steps: impl IntoIterator<Item = Self::Step>, ) -> Self::Program
Source§impl ProcessingProgramViewAlg for ProcessingSyntax
impl ProcessingProgramViewAlg for ProcessingSyntax
Source§fn processing_steps<'a>(
program: &'a Self::Program,
) -> impl Iterator<Item = &'a Self::Step>where
Self::Step: 'a,
fn processing_steps<'a>(
program: &'a Self::Program,
) -> impl Iterator<Item = &'a Self::Step>where
Self::Step: 'a,
Source§fn processing_stage(step: &Self::Step) -> ProcessingStage
fn processing_stage(step: &Self::Step) -> ProcessingStage
Source§impl ProcessingSorts for ProcessingSyntax
impl ProcessingSorts for ProcessingSyntax
Source§type Processor = ProcessorId
type Processor = ProcessorId
Source§type Step = ProcessingStep
type Step = ProcessingStep
Source§type Program = ProcessingProgram
type Program = ProcessingProgram
Auto Trait Implementations§
impl Freeze for ProcessingSyntax
impl RefUnwindSafe for ProcessingSyntax
impl Send for ProcessingSyntax
impl Sync for ProcessingSyntax
impl Unpin for ProcessingSyntax
impl UnsafeUnpin for ProcessingSyntax
impl UnwindSafe for ProcessingSyntax
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<This> GaugeLaws<This> for This
impl<This> GaugeLaws<This> for This
Source§fn gauge_laws(&self) -> Result<(), Error>
fn gauge_laws(&self) -> Result<(), Error>
Checks that a gauge states a share without claiming more resolution than it has.
The laws checked are:
- a gauge occupies its stated width whatever share it states;
- no share is stated as filled before it is reached, and none is stated twice;
- nothing stated is nothing filled, and everything stated fills the whole track;
- the stated text occupies exactly one cell per counted cell.
§Errors
Returns the first violated law.
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"]);Source§impl<This> ProcessingLaws<This> for Thiswhere
This: ProcessingProgramAlg + ProcessingProgramViewAlg,
impl<This> ProcessingLaws<This> for Thiswhere
This: ProcessingProgramAlg + ProcessingProgramViewAlg,
Source§fn processing_laws(&self) -> Result<(), Error>
fn processing_laws(&self) -> Result<(), Error>
Checks that the empty program is an identity and concatenation is sequential composition.
Stage selection and failure ordering are application laws: they constrain the order steps are applied in, which only an interpreter’s trace can observe.
§Errors
Returns the first violated law.
Source§impl<This> ProcessingProgramExt<This> for Thiswhere
This: ProcessingProgramAlg,
impl<This> ProcessingProgramExt<This> for Thiswhere
This: ProcessingProgramAlg,
Source§fn process_with(
&self,
stage: ProcessingStage,
processor: impl Into<String>,
) -> <This as ProcessingSorts>::Program
fn process_with( &self, stage: ProcessingStage, processor: impl Into<String>, ) -> <This as ProcessingSorts>::Program
Defines one-step processing.