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 Storage
Source§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 Storage
Source§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 Storage
Source§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)