Trait aterm::ATermFactory
[−]
[src]
pub trait ATermFactory<'a, B: 'a> {
type ATerm: IntoATerm<Blob = B, Rec = Self::ATermRef>;
type ATermRef: Borrow<Self::ATerm>;
fn no_annos(&'a self, term: Term<Self::ATermRef, B>) -> Self::ATermRef;
fn with_annos<A>(
&'a self,
term: Term<Self::ATermRef, 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::ATermRef>
) -> 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::ATermRef, B> { ... }
fn t_string(&'a self, value: String) -> Term<Self::ATermRef, B> { ... }
fn t_real(&'a self, value: f32) -> Term<Self::ATermRef, B> { ... }
fn t_application<I>(
&'a self,
constructor: String,
children: I
) -> Term<Self::ATermRef, B>
where
I: IntoIterator<Item = Self::ATermRef>,
{ ... }
fn t_list<I>(&'a self, value: I) -> Term<Self::ATermRef, B>
where
I: IntoIterator<Item = Self::ATermRef>,
{ ... }
fn t_placeholder(
&'a self,
value: TermPlaceholder<Self::ATermRef>
) -> Term<Self::ATermRef, B> { ... }
fn t_blob(&'a self, value: B) -> Term<Self::ATermRef, B> { ... }
fn t_long(&'a self, value: i64) -> Term<Self::ATermRef, B> { ... }
}An all-in-one package for building ATerms. Maybe be pure, or have internal mutability to give
you maximally shared ATerms.
Associated Types
Required Methods
fn no_annos(&'a self, term: Term<Self::ATermRef, B>) -> Self::ATermRef
fn with_annos<A>(
&'a self,
term: Term<Self::ATermRef, B>,
annos: A
) -> Self::ATermRef where
A: IntoIterator<Item = Self::ATermRef>,
&'a self,
term: Term<Self::ATermRef, 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>,
I: IntoIterator<Item = Self::ATermRef>,
fn list<I>(&'a self, value: I) -> Self::ATermRef where
I: IntoIterator<Item = Self::ATermRef>,
I: IntoIterator<Item = Self::ATermRef>,
fn placeholder(
&'a self,
value: TermPlaceholder<Self::ATermRef>
) -> Self::ATermRef
&'a self,
value: TermPlaceholder<Self::ATermRef>
) -> 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::ATermRef, B>
fn t_string(&'a self, value: String) -> Term<Self::ATermRef, B>
The string variant in ATerms is represented as an application with zero children!
fn t_real(&'a self, value: f32) -> Term<Self::ATermRef, B>
fn t_application<I>(
&'a self,
constructor: String,
children: I
) -> Term<Self::ATermRef, B> where
I: IntoIterator<Item = Self::ATermRef>,
&'a self,
constructor: String,
children: I
) -> Term<Self::ATermRef, B> where
I: IntoIterator<Item = Self::ATermRef>,
fn t_list<I>(&'a self, value: I) -> Term<Self::ATermRef, B> where
I: IntoIterator<Item = Self::ATermRef>,
I: IntoIterator<Item = Self::ATermRef>,
fn t_placeholder(
&'a self,
value: TermPlaceholder<Self::ATermRef>
) -> Term<Self::ATermRef, B>
&'a self,
value: TermPlaceholder<Self::ATermRef>
) -> Term<Self::ATermRef, B>
fn t_blob(&'a self, value: B) -> Term<Self::ATermRef, B>
fn t_long(&'a self, value: i64) -> Term<Self::ATermRef, 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>