pub struct BitVec<'st, const M: usize>(/* private fields */);Expand description
A bit-vec is a fixed size sequence of boolean values. You can read more about it here, among other places.
Implementations§
Source§impl<'st, const M: usize> BitVec<'st, M>
 
impl<'st, const M: usize> BitVec<'st, M>
Sourcepub fn new(
    st: &'st Storage,
    value: impl IntoWithStorage<'st, BitVec<'st, M>>,
) -> BitVec<'st, M>
 
pub fn new( st: &'st Storage, value: impl IntoWithStorage<'st, BitVec<'st, M>>, ) -> BitVec<'st, M>
Construct a new bit-vec.
Sourcepub fn bvnand(self, other: impl Into<Self>) -> Self
 
pub fn bvnand(self, other: impl Into<Self>) -> Self
Calls (bvnand self other) i.e. bitwise nand
Sourcepub fn bvxnor(self, other: impl Into<Self>) -> Self
 
pub fn bvxnor(self, other: impl Into<Self>) -> Self
Calls (bvxnor self other) i.e. bitwise xnor
Sourcepub fn bvule(self, other: impl Into<Self>) -> Bool<'st>
 
pub fn bvule(self, other: impl Into<Self>) -> Bool<'st>
Calls (bvule self other) i.e. unsigned less or equal
Sourcepub fn bvugt(self, other: impl Into<Self>) -> Bool<'st>
 
pub fn bvugt(self, other: impl Into<Self>) -> Bool<'st>
Calls (bvugt self other) i.e. unsigned greater than
Sourcepub fn bvuge(self, other: impl Into<Self>) -> Bool<'st>
 
pub fn bvuge(self, other: impl Into<Self>) -> Bool<'st>
Calls (bvuge self other) i.e. unsigned greater or equal
Sourcepub fn bvslt(self, other: impl Into<Self>) -> Bool<'st>
 
pub fn bvslt(self, other: impl Into<Self>) -> Bool<'st>
Calls (bvslt self other) i.e. signed less than
Sourcepub fn bvsle(self, other: impl Into<Self>) -> Bool<'st>
 
pub fn bvsle(self, other: impl Into<Self>) -> Bool<'st>
Calls (bvsle self other) i.e. signed less or equal
Trait Implementations§
Source§impl<'st, const M: usize, R> AddAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> AddAssign<R> for BitVec<'st, M>
Source§fn add_assign(&mut self, rhs: R)
 
fn add_assign(&mut self, rhs: R)
Performs the 
+= operation. Read moreSource§impl<'st, const M: usize, R> BitAndAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> BitAndAssign<R> for BitVec<'st, M>
Source§fn bitand_assign(&mut self, rhs: R)
 
fn bitand_assign(&mut self, rhs: R)
Performs the 
&= operation. Read moreSource§impl<'st, const M: usize, R> BitOrAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> BitOrAssign<R> for BitVec<'st, M>
Source§fn bitor_assign(&mut self, rhs: R)
 
fn bitor_assign(&mut self, rhs: R)
Performs the 
|= operation. Read moreSource§impl<'st, const M: usize, R> BitXorAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> BitXorAssign<R> for BitVec<'st, M>
Source§fn bitxor_assign(&mut self, rhs: R)
 
fn bitxor_assign(&mut self, rhs: R)
Performs the 
^= operation. Read moreSource§impl<'st, const M: usize, R> DivAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> DivAssign<R> for BitVec<'st, M>
Source§fn div_assign(&mut self, rhs: R)
 
fn div_assign(&mut self, rhs: R)
Performs the 
/= operation. Read moreSource§impl<'st, const M: usize> IntoWithStorage<'st, BitVec<'st, M>> for [bool; M]
 
impl<'st, const M: usize> IntoWithStorage<'st, BitVec<'st, M>> for [bool; M]
Source§fn into_with_storage(self, st: &'st Storage) -> BitVec<'st, M>
 
fn into_with_storage(self, st: &'st Storage) -> BitVec<'st, M>
Construct a 
STerm with the presence of StorageSource§impl<'st, const M: usize> IntoWithStorage<'st, BitVec<'st, M>> for i64
 
impl<'st, const M: usize> IntoWithStorage<'st, BitVec<'st, M>> for i64
Source§fn into_with_storage(self, st: &'st Storage) -> BitVec<'st, M>
 
fn into_with_storage(self, st: &'st Storage) -> BitVec<'st, M>
Construct a 
STerm with the presence of StorageSource§impl<'st, const M: usize, R> MulAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> MulAssign<R> for BitVec<'st, M>
Source§fn mul_assign(&mut self, rhs: R)
 
fn mul_assign(&mut self, rhs: R)
Performs the 
*= operation. Read moreSource§impl<'st, const M: usize, R> RemAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> RemAssign<R> for BitVec<'st, M>
Source§fn rem_assign(&mut self, rhs: R)
 
fn rem_assign(&mut self, rhs: R)
Performs the 
%= operation. Read moreSource§impl<'st, const M: usize, R> ShlAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> ShlAssign<R> for BitVec<'st, M>
Source§fn shl_assign(&mut self, rhs: R)
 
fn shl_assign(&mut self, rhs: R)
Performs the 
<<= operation. Read moreSource§impl<'st, const M: usize, R> ShrAssign<R> for BitVec<'st, M>
 
impl<'st, const M: usize, R> ShrAssign<R> for BitVec<'st, M>
Source§fn shr_assign(&mut self, rhs: R)
 
fn shr_assign(&mut self, rhs: R)
Performs the 
>>= operation. Read moreSource§impl<'st, const M: usize> StaticSorted<'st> for BitVec<'st, M>
 
impl<'st, const M: usize> StaticSorted<'st> for BitVec<'st, M>
Source§type Inner = BitVec<'st, M>
 
type Inner = BitVec<'st, M>
The inner type of the term. This is used for 
Const<'st, T>
where the inner type is T.impl<'st, const M: usize> Copy for BitVec<'st, M>
Auto Trait Implementations§
impl<'st, const M: usize> Freeze for BitVec<'st, M>
impl<'st, const M: usize> !RefUnwindSafe for BitVec<'st, M>
impl<'st, const M: usize> !Send for BitVec<'st, M>
impl<'st, const M: usize> !Sync for BitVec<'st, M>
impl<'st, const M: usize> Unpin for BitVec<'st, M>
impl<'st, const M: usize> !UnwindSafe for BitVec<'st, M>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<'st, T> IntoWithStorage<'st, T> for T
 
impl<'st, T> IntoWithStorage<'st, T> for T
Source§fn into_with_storage(self, _st: &'st Storage) -> T
 
fn into_with_storage(self, _st: &'st Storage) -> T
Construct a 
STerm with the presence of StorageSource§impl<'st, T> Sorted<'st> for Twhere
    T: StaticSorted<'st>,
 
impl<'st, T> Sorted<'st> for Twhere
    T: StaticSorted<'st>,
Source§type Inner = <T as StaticSorted<'st>>::Inner
 
type Inner = <T as StaticSorted<'st>>::Inner
The inner type of the term. This is used for 
Const<'st, T>
where the inner type is T.Source§fn sterm(self) -> STerm<'st>
 
fn sterm(self) -> STerm<'st>
Constructy the smtlib AST representation of the term with associated
storage.
Source§fn from_dynamic(d: Dynamic<'st>) -> Self
 
fn from_dynamic(d: Dynamic<'st>) -> Self
Casts a dynamically typed term into a concrete type
Source§fn try_from_dynamic(d: Dynamic<'st>) -> Option<Self>
 
fn try_from_dynamic(d: Dynamic<'st>) -> Option<Self>
Casts a dynamically typed term into a concrete type iff the dynamic sort
matches
Source§fn into_dynamic(self) -> Dynamic<'st>
 
fn into_dynamic(self) -> Dynamic<'st>
Casts the term into a dynamic term which looses static types and stores
the sort dynamically.
Source§fn _eq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st>
 
fn _eq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st>
Construct the term representing 
(= self other)