pub struct B64 {
pub len: u32,
pub bits: u64,
}
Fields§
§len: u32
§bits: u64
Trait Implementations§
Source§impl BV for B64
impl BV for B64
const BIT_ONE: Self
const BIT_ZERO: Self
Source§const MAX_WIDTH: u32 = 64u32
const MAX_WIDTH: u32 = 64u32
In Isla concrete bitvectors are only represented up to a
specific maximum width/length. Beyond this they will be
promoted to symbolic variables which are equal to a concrete
value represented in the SMT solver. This makes computation
over concrete bitvectors below this max width very efficient,
as they can be represented as simple Copy types like
u64
.fn new(bits: u64, len: u32) -> Self
fn lower_u64(self) -> u64
fn lower_u8(self) -> u8
fn is_zero(self) -> bool
fn leading_zeros(self) -> u32
fn from_u8(value: u8) -> Self
fn from_u16(value: u16) -> Self
fn from_u32(value: u32) -> Self
fn from_u64(value: u64) -> Self
Source§fn from_bytes(bytes: &[u8]) -> Self
fn from_bytes(bytes: &[u8]) -> Self
Byte order is: from_bytes(&[0xAB, 0xCD, 0xEF] == 0xABCDEF Read more
fn to_le_bytes(self) -> Vec<u8> ⓘ
fn to_be_bytes(self) -> Vec<u8> ⓘ
Source§fn from_str(bv: &str) -> Option<Self>
fn from_str(bv: &str) -> Option<Self>
Parses a bitvector from a string slice. String must be
prefixed by either #x/0x, or #b/0b (allowing both SMT style
and Sail/C style prefixes) for hexadecimal or binary. Returns
None
if the string is not parseable for any reasonfn len(self) -> u32
fn add_i128(self, op: i128) -> Self
Source§fn zero_extend(self, new_len: u32) -> Self
fn zero_extend(self, new_len: u32) -> Self
zero_extend a bitvector to a specific new length. Read more
Source§fn sign_extend(self, new_len: u32) -> Self
fn sign_extend(self, new_len: u32) -> Self
sign_extend a bitvector to a specific new length. Sign
extending a zero-length bitvector creates a
new_len
sized
bitvector containing only zeros. Read morefn unsigned(self) -> i128
fn signed(self) -> i128
fn slice(self, from: u32, len: u32) -> Option<Self>
fn set_slice(self, n: u32, update: Self) -> Self
fn set_slice_int(int: i128, n: u32, update: Self) -> i128
fn get_slice_int(len: u32, int: i128, n: u32) -> Self
fn len_i128(self) -> i128
fn is_empty(self) -> bool
fn sub_i128(self, op: i128) -> Self
fn append(self, suffix: Self) -> Option<Self>
fn extract(self, high: u32, low: u32) -> Option<Self>
fn shiftr(self, shift: i128) -> Self
fn arith_shiftr(self, shift: i128) -> Self
fn shiftl(self, shift: i128) -> Self
fn truncate_lsb(self, len: i128) -> Option<Self>
fn replicate(self, times: i128) -> Option<Self>
Source§impl<'de> Deserialize<'de> for B64
impl<'de> Deserialize<'de> for B64
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Copy for B64
impl Eq for B64
impl StructuralPartialEq for B64
Auto Trait Implementations§
impl Freeze for B64
impl RefUnwindSafe for B64
impl Send for B64
impl Sync for B64
impl Unpin for B64
impl UnwindSafe for B64
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.