Trait tylisp::engine::Calc[][src]

pub trait Calc<Quotes> {
    type Result;
    fn calc(q: Quotes) -> Self::Result;
}
Expand description

An s-expression that can calculate a runtime value, given the provided Quotes.

Quotes should have the same structure as Self, but items

Associated Types

Required methods

fn calc(q: Quotes) -> Self::Result[src]

Implementations on Foreign Types

impl<T, U> Calc<U> for PhantomData<T>[src]

type Result = Self

fn calc(_: U) -> Self[src]

impl<Q> Calc<Q> for True where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for False where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Z0 where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for UTerm where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q, H, L> Calc<Q> for UInt<H, L> where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

Implementors

impl<H: Calc<QH>, T, QH, QT> Calc<HCons<QH, QT>> for HCons<H, T> where
    H::Result: Call,
    <H::Result as Call>::Conv: CalcImpl<H::Result, T, QT>, 
[src]

type Result = <<H::Result as Call>::Conv as CalcImpl<H::Result, T, QT>>::Result

fn calc(q: HCons<QH, QT>) -> Self::Result[src]

impl<Q> Calc<Q> for Add where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Dec where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Inc where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Sub where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for All where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Any where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for BuildList where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Collate where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Concat where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Cons where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Contains where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for DifferP where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for EmptyP where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Filter where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Find where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for FindPred where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for FoldL where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for FoldR where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Head where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Intersect where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Map where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for MapRef where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Missing where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Remove where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Rev4 where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Rev5 where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for SetInsert where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for SubsetP where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for SupersetP where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Tail where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Union where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Without where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for And where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Invert where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for No where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Not where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Or where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Yes where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Unwrap where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for UnwrapRc where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for WrapRc where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Cond where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for If where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Is where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for IsNot where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Partial where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Phantom where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for tylisp::ops::Quote where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for Ret where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q> Calc<Q> for HNil where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q, H, T> Calc<Q> for ConcatCont<HCons<H, T>> where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q, In> Calc<Q> for RevCont<In> where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q, P> Calc<Q> for Inverted<P> where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q, Prefix> Calc<Q> for PartialImpl<Prefix> where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Q, X> Calc<Q> for Prepend<X> where
    Self: Default
[src]

type Result = Self

fn calc(_: Q) -> Self[src]

impl<Src: Into<Dest>, Dest> Calc<Src> for tylisp::Quote<Dest>[src]

type Result = Dest

fn calc(t: Src) -> Dest[src]