#[repr(transparent)]pub struct Line(Address);
Expand description
Data structure to reference a line within an immix block.
Tuple Fields§
§0: Address
Implementations§
source§impl Line
impl Line
pub const RESET_MARK_STATE: u8 = 1u8
pub const MAX_MARK_STATE: u8 = 127u8
sourcepub const MARK_TABLE: SideMetadataSpec = crate::util::metadata::side_metadata::spec_defs::IX_LINE_MARK
pub const MARK_TABLE: SideMetadataSpec = crate::util::metadata::side_metadata::spec_defs::IX_LINE_MARK
Line mark table (side)
sourcepub fn get_index_within_block(&self) -> usize
pub fn get_index_within_block(&self) -> usize
Get line index within its containing block.
sourcepub fn mark_lines_for_object<VM: VMBinding>(
object: ObjectReference,
state: u8
) -> usize
pub fn mark_lines_for_object<VM: VMBinding>( object: ObjectReference, state: u8 ) -> usize
Mark all lines the object is spanned to.
Trait Implementations§
source§impl PartialEq for Line
impl PartialEq for Line
source§impl PartialOrd for Line
impl PartialOrd for Line
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl Region for Line
impl Region for Line
source§fn from_aligned_address(address: Address) -> Self
fn from_aligned_address(address: Address) -> Self
Create a region from an address that is aligned to the region boundary. The method should panic if the address
is not properly aligned to the region. For performance, this method should always be inlined.
source§fn start(&self) -> Address
fn start(&self) -> Address
Return the start address of the region. For performance, this method should always be inlined.
source§fn from_unaligned_address(address: Address) -> Self
fn from_unaligned_address(address: Address) -> Self
Create a region from an arbitrary address.
source§fn is_aligned(address: Address) -> bool
fn is_aligned(address: Address) -> bool
Check if an address is aligned to the region.
source§fn end(&self) -> Address
fn end(&self) -> Address
Return the end address of the region. Note that the end address is not in the region.
source§fn containing(object: ObjectReference) -> Self
fn containing(object: ObjectReference) -> Self
Return the region that contains the object.
source§fn includes_address(&self, addr: Address) -> bool
fn includes_address(&self, addr: Address) -> bool
Check if the given address is in the region.
impl Copy for Line
impl Eq for Line
impl StructuralPartialEq for Line
Auto Trait Implementations§
impl RefUnwindSafe for Line
impl Send for Line
impl Sync for Line
impl Unpin for Line
impl UnwindSafe for Line
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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 more