LabDef

Struct LabDef 

Source
pub struct LabDef<Input, EditSt, Output, Editor: Generate<Input> + Edit<Input, EditSt>, Archivist: ComputeDemand<Input, Output>> {
    pub identity: Name,
    pub url: Option<String>,
    pub editor: PhantomData<Editor>,
    pub archivist: PhantomData<Archivist>,
    pub input: PhantomData<Input>,
    pub editst: PhantomData<EditSt>,
    pub output: PhantomData<Output>,
}
Expand description

lab definition: generic notion of an incremental computation that can be evaluated and tested. We instantiate this structure once for each test in our test suite. We implement the LabDef trait generically for this structure. See catalog module for example instances.

Fields§

§identity: Name§url: Option<String>§editor: PhantomData<Editor>§archivist: PhantomData<Archivist>§input: PhantomData<Input>§editst: PhantomData<EditSt>§output: PhantomData<Output>

Trait Implementations§

Source§

impl<Input: Clone + Debug, EditSt, Output: Eq + Debug, Editor: 'static + Generate<Input> + Edit<Input, EditSt>, Archivist: 'static + ComputeDemand<Input, Output>> Lab for LabDef<Input, EditSt, Output, Editor, Archivist>

Lab experiment implementation: Implements the LabDef trait for any LabArchivist instantiation.

Source§

fn name(&self) -> Name

Source§

fn url(&self) -> &Option<String>

Source§

fn run(&self, params: &LabParams) -> LabResults

Auto Trait Implementations§

§

impl<Input, EditSt, Output, Editor, Archivist> Freeze for LabDef<Input, EditSt, Output, Editor, Archivist>

§

impl<Input, EditSt, Output, Editor, Archivist> RefUnwindSafe for LabDef<Input, EditSt, Output, Editor, Archivist>
where Editor: RefUnwindSafe, Archivist: RefUnwindSafe, Input: RefUnwindSafe, EditSt: RefUnwindSafe, Output: RefUnwindSafe,

§

impl<Input, EditSt, Output, Editor, Archivist> !Send for LabDef<Input, EditSt, Output, Editor, Archivist>

§

impl<Input, EditSt, Output, Editor, Archivist> !Sync for LabDef<Input, EditSt, Output, Editor, Archivist>

§

impl<Input, EditSt, Output, Editor, Archivist> Unpin for LabDef<Input, EditSt, Output, Editor, Archivist>
where Editor: Unpin, Archivist: Unpin, Input: Unpin, EditSt: Unpin, Output: Unpin,

§

impl<Input, EditSt, Output, Editor, Archivist> UnwindSafe for LabDef<Input, EditSt, Output, Editor, Archivist>
where Editor: UnwindSafe, Archivist: UnwindSafe, Input: UnwindSafe, EditSt: UnwindSafe, Output: UnwindSafe,

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, 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, 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.