Address

Trait Address 

Source
pub trait Address:
    CalcOps
    + AlignOps
    + UsizeConvert
    + Copy
    + Clone
    + PartialEq
    + PartialOrd
    + Eq
    + Ord {
Show 16 methods // Provided methods fn is_null(self) -> bool { ... } fn null() -> Self { ... } fn page_offset(self) -> usize { ... } fn addr_diff(self, other: Self) -> isize { ... } fn add<T>(self) -> Self { ... } fn add_n<T>(self, n: usize) -> Self { ... } fn add_by(self, offset: usize) -> Self { ... } fn sub(self) -> Self { ... } fn sub_n(self, n: usize) -> Self { ... } fn sub_by(self, offset: usize) -> Self { ... } fn step(&mut self) { ... } fn step_n(&mut self, n: usize) { ... } fn step_back(&mut self) { ... } fn step_back_n(&mut self, n: usize) { ... } fn step_by(&mut self, offset: usize) { ... } fn step_back_by(&mut self, offset: usize) { ... }
}
Expand description

§Address Trait

表示一个内存地址的 Trait。所有地址类型必须实现此 Trait。 它组合了算术运算 (CalcOps)、对齐操作 (AlignOps) 和 usize 转换 (UsizeConvert)。

Provided Methods§

Source

fn is_null(self) -> bool

检查地址是否为空 (即零)。

Source

fn null() -> Self

返回一个空地址 (零地址)。

Source

fn page_offset(self) -> usize

获取地址在当前页内的偏移量。

Source

fn addr_diff(self, other: Self) -> isize

计算两个地址之间的字节差值。

Source

fn add<T>(self) -> Self

将地址增加 T 类型的大小。

§泛型
  • T: 要增加其大小的类型。
Source

fn add_n<T>(self, n: usize) -> Self

将地址增加 nT 类型元素的大小。

§参数
  • n: 元素个数。
Source

fn add_by(self, offset: usize) -> Self

将地址增加指定的字节偏移量。

Source

fn sub(self) -> Self

将地址减去 Self 类型的大小 (通常是 size_of::<usize>)。

Source

fn sub_n(self, n: usize) -> Self

将地址减去 nSelf 类型元素的大小。

Source

fn sub_by(self, offset: usize) -> Self

将地址减去指定的字节偏移量。

Source

fn step(&mut self)

将地址增加 Self 类型的大小 (原地修改)。

Source

fn step_n(&mut self, n: usize)

将地址增加 nSelf 类型元素的大小 (原地修改)。

Source

fn step_back(&mut self)

将地址减去 Self 类型的大小 (原地修改)。

Source

fn step_back_n(&mut self, n: usize)

将地址减去 nSelf 类型元素的大小 (原地修改)。

Source

fn step_by(&mut self, offset: usize)

将地址增加给定的字节偏移量 (原地修改)。

Source

fn step_back_by(&mut self, offset: usize)

将地址减去给定的字节偏移量 (原地修改)。

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§