Trait aterm::ATermFactory
[−]
[src]
pub trait ATermFactory<'a, B: 'a> { type Rec: Rec + FromIterator<Self::ATermRef>; type ATerm: Deref<Target=_ATerm<Self::Rec, B>>; type ATermRef: Borrow<Self::ATerm>; fn no_annos(&'a self, term: Term<Self::Rec, B>) -> Self::ATermRef; fn with_annos<A>(&'a self,
term: Term<Self::Rec, B>,
annos: A)
-> Self::ATermRef where A: IntoIterator<Item=Self::ATermRef>; fn int(&'a self, value: i32) -> Self::ATermRef { ... } fn string(&'a self, value: String) -> Self::ATermRef { ... } fn real(&'a self, value: f32) -> Self::ATermRef { ... } fn application<I>(&'a self,
constructor: String,
children: I)
-> Self::ATermRef where I: IntoIterator<Item=Self::ATermRef> { ... } fn list<I>(&'a self, value: I) -> Self::ATermRef where I: IntoIterator<Item=Self::ATermRef> { ... } fn placeholder(&'a self,
value: TermPlaceholder<Self::Rec>)
-> Self::ATermRef { ... } fn blob(&'a self, value: B) -> Self::ATermRef { ... } fn long(&'a self, value: i64) -> Self::ATermRef { ... } fn t_int(&'a self, value: i32) -> Term<Self::Rec, B> { ... } fn t_string(&'a self, value: String) -> Term<Self::Rec, B> { ... } fn t_real(&'a self, value: f32) -> Term<Self::Rec, B> { ... } fn t_application<I>(&'a self,
constructor: String,
children: I)
-> Term<Self::Rec, B> where I: IntoIterator<Item=Self::ATermRef> { ... } fn t_list<I>(&'a self, value: I) -> Term<Self::Rec, B> where I: IntoIterator<Item=Self::ATermRef> { ... } fn t_placeholder(&'a self,
value: TermPlaceholder<Self::Rec>)
-> Term<Self::Rec, B> { ... } fn t_blob(&'a self, value: B) -> Term<Self::Rec, B> { ... } fn t_long(&'a self, value: i64) -> Term<Self::Rec, B> { ... } }
An all-in-one package for building ATerms
. Maybe be pure, or have internal mutability to give
you maximally shared ATerms
.
Associated Types
type Rec: Rec + FromIterator<Self::ATermRef>
type ATerm: Deref<Target=_ATerm<Self::Rec, B>>
type ATermRef: Borrow<Self::ATerm>
Required Methods
fn no_annos(&'a self, term: Term<Self::Rec, B>) -> Self::ATermRef
fn with_annos<A>(&'a self, term: Term<Self::Rec, B>, annos: A) -> Self::ATermRef where A: IntoIterator<Item=Self::ATermRef>
Provided Methods
fn int(&'a self, value: i32) -> Self::ATermRef
fn string(&'a self, value: String) -> Self::ATermRef
The string variant in ATerms is represented as an application with zero children!
fn real(&'a self, value: f32) -> Self::ATermRef
fn application<I>(&'a self, constructor: String, children: I) -> Self::ATermRef where I: IntoIterator<Item=Self::ATermRef>
fn list<I>(&'a self, value: I) -> Self::ATermRef where I: IntoIterator<Item=Self::ATermRef>
fn placeholder(&'a self, value: TermPlaceholder<Self::Rec>) -> Self::ATermRef
fn blob(&'a self, value: B) -> Self::ATermRef
fn long(&'a self, value: i64) -> Self::ATermRef
fn t_int(&'a self, value: i32) -> Term<Self::Rec, B>
fn t_string(&'a self, value: String) -> Term<Self::Rec, B>
The string variant in ATerms is represented as an application with zero children!
fn t_real(&'a self, value: f32) -> Term<Self::Rec, B>
fn t_application<I>(&'a self,
constructor: String,
children: I)
-> Term<Self::Rec, B> where I: IntoIterator<Item=Self::ATermRef>
constructor: String,
children: I)
-> Term<Self::Rec, B> where I: IntoIterator<Item=Self::ATermRef>
fn t_list<I>(&'a self, value: I) -> Term<Self::Rec, B> where I: IntoIterator<Item=Self::ATermRef>
fn t_placeholder(&'a self,
value: TermPlaceholder<Self::Rec>)
-> Term<Self::Rec, B>
value: TermPlaceholder<Self::Rec>)
-> Term<Self::Rec, B>
fn t_blob(&'a self, value: B) -> Term<Self::Rec, B>
fn t_long(&'a self, value: i64) -> Term<Self::Rec, B>
Implementors
impl<'a, B: Clone + Hash + Eq + 'a> ATermFactory<'a, B> for aterm::boxed::shared::ATermFactory<B>
impl<'a, B: Clone + 'a> ATermFactory<'a, B> for aterm::boxed::ATermFactory<B>