Struct chalk_ir::ProgramClauses [−][src]
pub struct ProgramClauses<I: Interner> { /* fields omitted */ }
List of interned elements.
Implementations
impl<I: Interner> ProgramClauses<I>[src]
pub fn interned(&self) -> &I::InternedProgramClauses[src]
Get the interned elements.
pub fn as_slice(&self, interner: &I) -> &[ProgramClause<I>][src]
Returns a slice containing the elements.
pub fn at(&self, interner: &I, index: usize) -> &ProgramClause<I>[src]
Index into the sequence.
pub fn empty(interner: &I) -> Self[src]
Create an empty sequence.
pub fn is_empty(&self, interner: &I) -> bool[src]
Check whether this is an empty sequence.
pub fn iter(&self, interner: &I) -> Iter<'_, ProgramClause<I>>[src]
Get an iterator over the elements of the sequence.
pub fn len(&self, interner: &I) -> usize[src]
Get the length of the sequence.
impl<I: Interner> ProgramClauses<I>[src]
pub fn from_fallible<E>(
interner: &I,
elements: impl IntoIterator<Item = Result<impl CastTo<ProgramClause<I>>, E>>
) -> Result<Self, E>[src]
interner: &I,
elements: impl IntoIterator<Item = Result<impl CastTo<ProgramClause<I>>, E>>
) -> Result<Self, E>
Tries to create a sequence using an iterator of element-like things.
pub fn from_iter(
interner: &I,
elements: impl IntoIterator<Item = impl CastTo<ProgramClause<I>>>
) -> Self[src]
interner: &I,
elements: impl IntoIterator<Item = impl CastTo<ProgramClause<I>>>
) -> Self
Create a sequence from elements
pub fn from1(interner: &I, element: impl CastTo<ProgramClause<I>>) -> Self[src]
Create a sequence from a single element.
Trait Implementations
impl<I: Clone + Interner> Clone for ProgramClauses<I> where
I::InternedProgramClauses: Clone, [src]
I::InternedProgramClauses: Clone,
fn clone(&self) -> ProgramClauses<I>[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<I: Copy + Interner> Copy for ProgramClauses<I> where
I::InternedProgramClauses: Copy, [src]
I::InternedProgramClauses: Copy,
impl<I: Interner> Debug for ProgramClauses<I>[src]
impl<I: Eq + Interner> Eq for ProgramClauses<I> where
I::InternedProgramClauses: Eq, [src]
I::InternedProgramClauses: Eq,
impl<I: Interner> Fold<I> for ProgramClauses<I>[src]
type Result = ProgramClauses<I>
The type of value that will be produced once folding is done.
Typically this is Self, unless Self contains borrowed
values, in which case owned values are produced (for example,
one can fold over a &T value where T: Fold, in which case
you get back a T, not a &T). Read more
fn fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i, [src]
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
impl<I: Interner> HasInterner for ProgramClauses<I>[src]
type Interner = I
The interner associated with the type.
impl<I: Hash + Interner> Hash for ProgramClauses<I> where
I::InternedProgramClauses: Hash, [src]
I::InternedProgramClauses: Hash,
fn hash<__H: Hasher>(&self, state: &mut __H)[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl<I: Ord + Interner> Ord for ProgramClauses<I> where
I::InternedProgramClauses: Ord, [src]
I::InternedProgramClauses: Ord,
fn cmp(&self, other: &ProgramClauses<I>) -> Ordering[src]
#[must_use]pub fn max(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self1.50.0[src]
impl<I: PartialEq + Interner> PartialEq<ProgramClauses<I>> for ProgramClauses<I> where
I::InternedProgramClauses: PartialEq, [src]
I::InternedProgramClauses: PartialEq,
fn eq(&self, other: &ProgramClauses<I>) -> bool[src]
fn ne(&self, other: &ProgramClauses<I>) -> bool[src]
impl<I: PartialOrd + Interner> PartialOrd<ProgramClauses<I>> for ProgramClauses<I> where
I::InternedProgramClauses: PartialOrd, [src]
I::InternedProgramClauses: PartialOrd,
fn partial_cmp(&self, other: &ProgramClauses<I>) -> Option<Ordering>[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool1.0.0[src]
impl<I: Interner> StructuralEq for ProgramClauses<I>[src]
impl<I: Interner> StructuralPartialEq for ProgramClauses<I>[src]
impl<I: Interner> Visit<I> for ProgramClauses<I>[src]
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i, [src]
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
impl<I: Interner> Zip<I> for ProgramClauses<I>[src]
Auto Trait Implementations
impl<I> RefUnwindSafe for ProgramClauses<I> where
<I as Interner>::InternedProgramClauses: RefUnwindSafe,
<I as Interner>::InternedProgramClauses: RefUnwindSafe,
impl<I> Send for ProgramClauses<I> where
<I as Interner>::InternedProgramClauses: Send,
<I as Interner>::InternedProgramClauses: Send,
impl<I> Sync for ProgramClauses<I> where
<I as Interner>::InternedProgramClauses: Sync,
<I as Interner>::InternedProgramClauses: Sync,
impl<I> Unpin for ProgramClauses<I> where
<I as Interner>::InternedProgramClauses: Unpin,
<I as Interner>::InternedProgramClauses: Unpin,
impl<I> UnwindSafe for ProgramClauses<I> where
<I as Interner>::InternedProgramClauses: UnwindSafe,
<I as Interner>::InternedProgramClauses: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Cast for T[src]
fn cast<U>(self, interner: &U::Interner) -> U where
Self: CastTo<U>,
U: HasInterner, [src]
Self: CastTo<U>,
U: HasInterner,
impl<T, I> CouldMatch<T> for T where
T: Zip<I> + HasInterner<Interner = I> + ?Sized,
I: Interner, [src]
T: Zip<I> + HasInterner<Interner = I> + ?Sized,
I: Interner,
pub fn could_match(&Self, &I, &dyn UnificationDatabase<I>, &T) -> bool[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, I> Shift<I> for T where
T: Fold<I>,
I: Interner, [src]
T: Fold<I>,
I: Interner,
pub fn shifted_in(Self, &I) -> <T as Fold<I>>::Result[src]
pub fn shifted_in_from(Self, &I, DebruijnIndex) -> <T as Fold<I>>::Result[src]
pub fn shifted_out_to(
Self,
&I,
DebruijnIndex
) -> Result<<T as Fold<I>>::Result, NoSolution>[src]
Self,
&I,
DebruijnIndex
) -> Result<<T as Fold<I>>::Result, NoSolution>
pub fn shifted_out(Self, &I) -> Result<<T as Fold<I>>::Result, NoSolution>[src]
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T, I> VisitExt<I> for T where
T: Visit<I>,
I: Interner, [src]
T: Visit<I>,
I: Interner,