diff --git a/main/help.html b/main/help.html index b36e5005..43c781d7 100644 --- a/main/help.html +++ b/main/help.html @@ -1,2 +1 @@ -Help -

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/main/os/all.html b/main/os/all.html index 9d20d6e3..99335567 100644 --- a/main/os/all.html +++ b/main/os/all.html @@ -1,2 +1 @@ -List of all items in this crate -

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

Constants

\ No newline at end of file diff --git a/main/os/board/constant.CLOCK_FREQ.html b/main/os/board/constant.CLOCK_FREQ.html index 024dfbc8..95a237da 100644 --- a/main/os/board/constant.CLOCK_FREQ.html +++ b/main/os/board/constant.CLOCK_FREQ.html @@ -1,2 +1 @@ -CLOCK_FREQ in os::board - Rust -

Constant os::board::CLOCK_FREQ

source ·
pub const CLOCK_FREQ: usize = 12500000;
\ No newline at end of file +CLOCK_FREQ in os::board - Rust

Constant os::board::CLOCK_FREQ

source ·
pub const CLOCK_FREQ: usize = 12500000;
\ No newline at end of file diff --git a/main/os/board/constant.MEMORY_END.html b/main/os/board/constant.MEMORY_END.html index 9fe3d5a8..52c10814 100644 --- a/main/os/board/constant.MEMORY_END.html +++ b/main/os/board/constant.MEMORY_END.html @@ -1,2 +1 @@ -MEMORY_END in os::board - Rust -

Constant os::board::MEMORY_END

source ·
pub const MEMORY_END: usize = 0x8800_0000;
\ No newline at end of file +MEMORY_END in os::board - Rust

Constant os::board::MEMORY_END

source ·
pub const MEMORY_END: usize = 0x8800_0000;
\ No newline at end of file diff --git a/main/os/board/constant.MMIO.html b/main/os/board/constant.MMIO.html index 1f4d21d8..2410518c 100644 --- a/main/os/board/constant.MMIO.html +++ b/main/os/board/constant.MMIO.html @@ -1,2 +1 @@ -MMIO in os::board - Rust -

Constant os::board::MMIO

source ·
pub const MMIO: &[(usize, usize)];
\ No newline at end of file +MMIO in os::board - Rust

Constant os::board::MMIO

source ·
pub const MMIO: &[(usize, usize)];
\ No newline at end of file diff --git a/main/os/board/constant.VIRTGPU_XRES.html b/main/os/board/constant.VIRTGPU_XRES.html index 8b8921f3..bcf88234 100644 --- a/main/os/board/constant.VIRTGPU_XRES.html +++ b/main/os/board/constant.VIRTGPU_XRES.html @@ -1,2 +1 @@ -VIRTGPU_XRES in os::board - Rust -

Constant os::board::VIRTGPU_XRES

source ·
pub const VIRTGPU_XRES: u32 = 1280;
\ No newline at end of file +VIRTGPU_XRES in os::board - Rust

Constant os::board::VIRTGPU_XRES

source ·
pub const VIRTGPU_XRES: u32 = 1280;
\ No newline at end of file diff --git a/main/os/board/constant.VIRTGPU_YRES.html b/main/os/board/constant.VIRTGPU_YRES.html index 0fb93767..28c4e863 100644 --- a/main/os/board/constant.VIRTGPU_YRES.html +++ b/main/os/board/constant.VIRTGPU_YRES.html @@ -1,2 +1 @@ -VIRTGPU_YRES in os::board - Rust -

Constant os::board::VIRTGPU_YRES

source ·
pub const VIRTGPU_YRES: u32 = 800;
\ No newline at end of file +VIRTGPU_YRES in os::board - Rust

Constant os::board::VIRTGPU_YRES

source ·
pub const VIRTGPU_YRES: u32 = 800;
\ No newline at end of file diff --git a/main/os/board/constant.VIRT_PLIC.html b/main/os/board/constant.VIRT_PLIC.html index 8e7b2e6e..ba5e3604 100644 --- a/main/os/board/constant.VIRT_PLIC.html +++ b/main/os/board/constant.VIRT_PLIC.html @@ -1,2 +1 @@ -VIRT_PLIC in os::board - Rust -

Constant os::board::VIRT_PLIC

source ·
pub const VIRT_PLIC: usize = 0xC00_0000;
\ No newline at end of file +VIRT_PLIC in os::board - Rust

Constant os::board::VIRT_PLIC

source ·
pub const VIRT_PLIC: usize = 0xC00_0000;
\ No newline at end of file diff --git a/main/os/board/constant.VIRT_UART.html b/main/os/board/constant.VIRT_UART.html index b6e90cb5..a97700fb 100644 --- a/main/os/board/constant.VIRT_UART.html +++ b/main/os/board/constant.VIRT_UART.html @@ -1,2 +1 @@ -VIRT_UART in os::board - Rust -

Constant os::board::VIRT_UART

source ·
pub const VIRT_UART: usize = 0x1000_0000;
\ No newline at end of file +VIRT_UART in os::board - Rust

Constant os::board::VIRT_UART

source ·
pub const VIRT_UART: usize = 0x1000_0000;
\ No newline at end of file diff --git a/main/os/board/fn.device_init.html b/main/os/board/fn.device_init.html index 37c2ef00..7b9df54a 100644 --- a/main/os/board/fn.device_init.html +++ b/main/os/board/fn.device_init.html @@ -1,2 +1 @@ -device_init in os::board - Rust -

Function os::board::device_init

source ·
pub fn device_init()
\ No newline at end of file +device_init in os::board - Rust

Function os::board::device_init

source ·
pub fn device_init()
\ No newline at end of file diff --git a/main/os/board/fn.irq_handler.html b/main/os/board/fn.irq_handler.html index 9aa93083..22d1a343 100644 --- a/main/os/board/fn.irq_handler.html +++ b/main/os/board/fn.irq_handler.html @@ -1,2 +1 @@ -irq_handler in os::board - Rust -

Function os::board::irq_handler

source ·
pub fn irq_handler()
\ No newline at end of file +irq_handler in os::board - Rust

Function os::board::irq_handler

source ·
pub fn irq_handler()
\ No newline at end of file diff --git a/main/os/board/index.html b/main/os/board/index.html index f225e19d..1a883fd9 100644 --- a/main/os/board/index.html +++ b/main/os/board/index.html @@ -1,2 +1 @@ -os::board - Rust -

Module os::board

source ·

Constants

Functions

Type Aliases

\ No newline at end of file +os::board - Rust

Module os::board

source ·

Constants§

Functions§

Type Aliases§

\ No newline at end of file diff --git a/main/os/board/type.BlockDeviceImpl.html b/main/os/board/type.BlockDeviceImpl.html index b0b0bb39..31ba2365 100644 --- a/main/os/board/type.BlockDeviceImpl.html +++ b/main/os/board/type.BlockDeviceImpl.html @@ -1,5 +1,4 @@ -BlockDeviceImpl in os::board - Rust -

Type Alias os::board::BlockDeviceImpl

source ·
pub type BlockDeviceImpl = VirtIOBlock;

Aliased Type§

struct BlockDeviceImpl {
+BlockDeviceImpl in os::board - Rust

Type Alias os::board::BlockDeviceImpl

source ·
pub type BlockDeviceImpl = VirtIOBlock;

Aliased Type§

struct BlockDeviceImpl {
     virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>,
     condvars: BTreeMap<u16, Condvar>,
 }

Fields§

§virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>§condvars: BTreeMap<u16, Condvar>
\ No newline at end of file diff --git a/main/os/board/type.CharDeviceImpl.html b/main/os/board/type.CharDeviceImpl.html index 44ce2b82..4457e171 100644 --- a/main/os/board/type.CharDeviceImpl.html +++ b/main/os/board/type.CharDeviceImpl.html @@ -1,5 +1,4 @@ -CharDeviceImpl in os::board - Rust -

Type Alias os::board::CharDeviceImpl

source ·
pub type CharDeviceImpl = NS16550a<VIRT_UART>;

Aliased Type§

struct CharDeviceImpl {
+CharDeviceImpl in os::board - Rust

Type Alias os::board::CharDeviceImpl

source ·
pub type CharDeviceImpl = NS16550a<VIRT_UART>;

Aliased Type§

struct CharDeviceImpl {
     inner: UPIntrFreeCell<NS16550aInner>,
     condvar: Condvar,
 }

Fields§

§inner: UPIntrFreeCell<NS16550aInner>§condvar: Condvar
\ No newline at end of file diff --git a/main/os/config/constant.KERNEL_HEAP_SIZE.html b/main/os/config/constant.KERNEL_HEAP_SIZE.html index a48ed0d3..1ec84317 100644 --- a/main/os/config/constant.KERNEL_HEAP_SIZE.html +++ b/main/os/config/constant.KERNEL_HEAP_SIZE.html @@ -1,2 +1 @@ -KERNEL_HEAP_SIZE in os::config - Rust -

Constant os::config::KERNEL_HEAP_SIZE

source ·
pub const KERNEL_HEAP_SIZE: usize = 0x100_0000;
\ No newline at end of file +KERNEL_HEAP_SIZE in os::config - Rust

Constant os::config::KERNEL_HEAP_SIZE

source ·
pub const KERNEL_HEAP_SIZE: usize = 0x100_0000;
\ No newline at end of file diff --git a/main/os/config/constant.KERNEL_STACK_SIZE.html b/main/os/config/constant.KERNEL_STACK_SIZE.html index 74dbf040..22f8be18 100644 --- a/main/os/config/constant.KERNEL_STACK_SIZE.html +++ b/main/os/config/constant.KERNEL_STACK_SIZE.html @@ -1,2 +1 @@ -KERNEL_STACK_SIZE in os::config - Rust -

Constant os::config::KERNEL_STACK_SIZE

source ·
pub const KERNEL_STACK_SIZE: usize = _; // 8_192usize
\ No newline at end of file +KERNEL_STACK_SIZE in os::config - Rust

Constant os::config::KERNEL_STACK_SIZE

source ·
pub const KERNEL_STACK_SIZE: usize = _; // 8_192usize
\ No newline at end of file diff --git a/main/os/config/constant.PAGE_SIZE.html b/main/os/config/constant.PAGE_SIZE.html index 1d78f6fb..93a41186 100644 --- a/main/os/config/constant.PAGE_SIZE.html +++ b/main/os/config/constant.PAGE_SIZE.html @@ -1,2 +1 @@ -PAGE_SIZE in os::config - Rust -

Constant os::config::PAGE_SIZE

source ·
pub const PAGE_SIZE: usize = 0x1000;
\ No newline at end of file +PAGE_SIZE in os::config - Rust

Constant os::config::PAGE_SIZE

source ·
pub const PAGE_SIZE: usize = 0x1000;
\ No newline at end of file diff --git a/main/os/config/constant.PAGE_SIZE_BITS.html b/main/os/config/constant.PAGE_SIZE_BITS.html index dd34acf3..57d5a80b 100644 --- a/main/os/config/constant.PAGE_SIZE_BITS.html +++ b/main/os/config/constant.PAGE_SIZE_BITS.html @@ -1,2 +1 @@ -PAGE_SIZE_BITS in os::config - Rust -

Constant os::config::PAGE_SIZE_BITS

source ·
pub const PAGE_SIZE_BITS: usize = 0xc;
\ No newline at end of file +PAGE_SIZE_BITS in os::config - Rust

Constant os::config::PAGE_SIZE_BITS

source ·
pub const PAGE_SIZE_BITS: usize = 0xc;
\ No newline at end of file diff --git a/main/os/config/constant.TRAMPOLINE.html b/main/os/config/constant.TRAMPOLINE.html index 1d53fe5c..956736b9 100644 --- a/main/os/config/constant.TRAMPOLINE.html +++ b/main/os/config/constant.TRAMPOLINE.html @@ -1,2 +1 @@ -TRAMPOLINE in os::config - Rust -

Constant os::config::TRAMPOLINE

source ·
pub const TRAMPOLINE: usize = _; // 18_446_744_073_709_547_520usize
\ No newline at end of file +TRAMPOLINE in os::config - Rust

Constant os::config::TRAMPOLINE

source ·
pub const TRAMPOLINE: usize = _; // 18_446_744_073_709_547_520usize
\ No newline at end of file diff --git a/main/os/config/constant.TRAP_CONTEXT_BASE.html b/main/os/config/constant.TRAP_CONTEXT_BASE.html index 8de68bbd..180d4672 100644 --- a/main/os/config/constant.TRAP_CONTEXT_BASE.html +++ b/main/os/config/constant.TRAP_CONTEXT_BASE.html @@ -1,2 +1 @@ -TRAP_CONTEXT_BASE in os::config - Rust -

Constant os::config::TRAP_CONTEXT_BASE

source ·
pub const TRAP_CONTEXT_BASE: usize = _; // 18_446_744_073_709_543_424usize
\ No newline at end of file +TRAP_CONTEXT_BASE in os::config - Rust

Constant os::config::TRAP_CONTEXT_BASE

source ·
pub const TRAP_CONTEXT_BASE: usize = _; // 18_446_744_073_709_543_424usize
\ No newline at end of file diff --git a/main/os/config/constant.USER_STACK_SIZE.html b/main/os/config/constant.USER_STACK_SIZE.html index f94afaec..83e11867 100644 --- a/main/os/config/constant.USER_STACK_SIZE.html +++ b/main/os/config/constant.USER_STACK_SIZE.html @@ -1,2 +1 @@ -USER_STACK_SIZE in os::config - Rust -

Constant os::config::USER_STACK_SIZE

source ·
pub const USER_STACK_SIZE: usize = _; // 8_192usize
\ No newline at end of file +USER_STACK_SIZE in os::config - Rust

Constant os::config::USER_STACK_SIZE

source ·
pub const USER_STACK_SIZE: usize = _; // 8_192usize
\ No newline at end of file diff --git a/main/os/config/index.html b/main/os/config/index.html index 6748d4a4..c5724844 100644 --- a/main/os/config/index.html +++ b/main/os/config/index.html @@ -1,2 +1 @@ -os::config - Rust -
\ No newline at end of file +os::config - Rust

Module os::config

source ·

Re-exports§

Constants§

\ No newline at end of file diff --git a/main/os/console/fn.print.html b/main/os/console/fn.print.html index 00ed8511..caba2d62 100644 --- a/main/os/console/fn.print.html +++ b/main/os/console/fn.print.html @@ -1,2 +1 @@ -print in os::console - Rust -

Function os::console::print

source ·
pub fn print(args: Arguments<'_>)
\ No newline at end of file +print in os::console - Rust

Function os::console::print

source ·
pub fn print(args: Arguments<'_>)
\ No newline at end of file diff --git a/main/os/console/index.html b/main/os/console/index.html index 8a46ec44..779c9629 100644 --- a/main/os/console/index.html +++ b/main/os/console/index.html @@ -1,2 +1 @@ -os::console - Rust -
\ No newline at end of file +os::console - Rust

Module os::console

source ·

Structs§

Functions§

\ No newline at end of file diff --git a/main/os/console/struct.Stdout.html b/main/os/console/struct.Stdout.html index cb5fe9ea..5f1ff7e1 100644 --- a/main/os/console/struct.Stdout.html +++ b/main/os/console/struct.Stdout.html @@ -1,24 +1,23 @@ -Stdout in os::console - Rust -

Struct os::console::Stdout

source ·
struct Stdout;

Trait Implementations§

source§

impl Write for Stdout

source§

fn write_str(&mut self, s: &str) -> Result

Writes a string slice into this writer, returning whether the write -succeeded. Read more
1.1.0 · source§

fn write_char(&mut self, c: char) -> Result<(), Error>

Writes a char into this writer, returning whether the write succeeded. Read more
1.0.0 · source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Glue for usage of the write! macro with implementors of this trait. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +Stdout in os::console - Rust

Struct os::console::Stdout

source ·
struct Stdout;

Trait Implementations§

source§

impl Write for Stdout

source§

fn write_str(&mut self, s: &str) -> Result

Writes a string slice into this writer, returning whether the write +succeeded. Read more
1.1.0 · source§

fn write_char(&mut self, c: char) -> Result<(), Error>

Writes a char into this writer, returning whether the write succeeded. Read more
1.0.0 · source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Glue for usage of the write! macro with implementors of this trait. Read more

Auto Trait Implementations§

§

impl Freeze for Stdout

§

impl RefUnwindSafe for Stdout

§

impl Send for Stdout

§

impl Sync for Stdout

§

impl Unpin for Stdout

§

impl UnwindSafe for Stdout

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/block/fn.block_device_test.html b/main/os/drivers/block/fn.block_device_test.html index 4dd4472d..45e43c1d 100644 --- a/main/os/drivers/block/fn.block_device_test.html +++ b/main/os/drivers/block/fn.block_device_test.html @@ -1,2 +1 @@ -block_device_test in os::drivers::block - Rust -
pub fn block_device_test()
\ No newline at end of file +block_device_test in os::drivers::block - Rust

Function os::drivers::block::block_device_test

source ·
pub fn block_device_test()
\ No newline at end of file diff --git a/main/os/drivers/block/index.html b/main/os/drivers/block/index.html index 785f1633..ddfe61b9 100644 --- a/main/os/drivers/block/index.html +++ b/main/os/drivers/block/index.html @@ -1,2 +1 @@ -os::drivers::block - Rust -
\ No newline at end of file +os::drivers::block - Rust

Module os::drivers::block

source ·

Re-exports§

Modules§

Structs§

Functions§

\ No newline at end of file diff --git a/main/os/drivers/block/struct.BLOCK_DEVICE.html b/main/os/drivers/block/struct.BLOCK_DEVICE.html index dd51b399..8bf4bb29 100644 --- a/main/os/drivers/block/struct.BLOCK_DEVICE.html +++ b/main/os/drivers/block/struct.BLOCK_DEVICE.html @@ -1,25 +1,24 @@ -BLOCK_DEVICE in os::drivers::block - Rust -

Struct os::drivers::block::BLOCK_DEVICE

source ·
pub struct BLOCK_DEVICE {
+BLOCK_DEVICE in os::drivers::block - Rust

Struct os::drivers::block::BLOCK_DEVICE

source ·
pub struct BLOCK_DEVICE {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for BLOCK_DEVICE

§

type Target = Arc<dyn BlockDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn BlockDevice>

Dereferences the value.
source§

impl LazyStatic for BLOCK_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for BLOCK_DEVICE

§

type Target = Arc<dyn BlockDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn BlockDevice>

Dereferences the value.
source§

impl LazyStatic for BLOCK_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/block/virtio_blk/constant.VIRTIO0.html b/main/os/drivers/block/virtio_blk/constant.VIRTIO0.html index da7571b3..66cb2c5d 100644 --- a/main/os/drivers/block/virtio_blk/constant.VIRTIO0.html +++ b/main/os/drivers/block/virtio_blk/constant.VIRTIO0.html @@ -1,2 +1 @@ -VIRTIO0 in os::drivers::block::virtio_blk - Rust -

Constant os::drivers::block::virtio_blk::VIRTIO0

source ·
const VIRTIO0: usize = 0x10008000;
\ No newline at end of file +VIRTIO0 in os::drivers::block::virtio_blk - Rust

Constant os::drivers::block::virtio_blk::VIRTIO0

source ·
const VIRTIO0: usize = 0x10008000;
\ No newline at end of file diff --git a/main/os/drivers/block/virtio_blk/index.html b/main/os/drivers/block/virtio_blk/index.html index 159cb61d..446fba40 100644 --- a/main/os/drivers/block/virtio_blk/index.html +++ b/main/os/drivers/block/virtio_blk/index.html @@ -1,2 +1 @@ -os::drivers::block::virtio_blk - Rust -
\ No newline at end of file +os::drivers::block::virtio_blk - Rust

Module os::drivers::block::virtio_blk

source ·

Structs§

Constants§

\ No newline at end of file diff --git a/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html b/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html index f8824c5a..ae78fa92 100644 --- a/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html +++ b/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html @@ -1,26 +1,25 @@ -VirtIOBlock in os::drivers::block::virtio_blk - Rust -
pub struct VirtIOBlock {
+VirtIOBlock in os::drivers::block::virtio_blk - Rust

Struct os::drivers::block::virtio_blk::VirtIOBlock

source ·
pub struct VirtIOBlock {
     virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>,
     condvars: BTreeMap<u16, Condvar>,
-}

Fields§

§virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>§condvars: BTreeMap<u16, Condvar>

Implementations§

source§

impl VirtIOBlock

source

pub fn new() -> Self

Trait Implementations§

source§

impl BlockDevice for VirtIOBlock

source§

fn read_block(&self, block_id: usize, buf: &mut [u8])

source§

fn write_block(&self, block_id: usize, buf: &[u8])

source§

fn handle_irq(&self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>§condvars: BTreeMap<u16, Condvar>

Implementations§

source§

impl VirtIOBlock

source

pub fn new() -> Self

Trait Implementations§

source§

impl BlockDevice for VirtIOBlock

source§

fn read_block(&self, block_id: usize, buf: &mut [u8])

source§

fn write_block(&self, block_id: usize, buf: &[u8])

source§

fn handle_irq(&self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/bus/index.html b/main/os/drivers/bus/index.html index 5f92f899..16273cef 100644 --- a/main/os/drivers/bus/index.html +++ b/main/os/drivers/bus/index.html @@ -1,2 +1 @@ -os::drivers::bus - Rust -
\ No newline at end of file +os::drivers::bus - Rust

Module os::drivers::bus

source ·

Modules§

\ No newline at end of file diff --git a/main/os/drivers/bus/virtio/index.html b/main/os/drivers/bus/virtio/index.html index 8af3e137..15ce0205 100644 --- a/main/os/drivers/bus/virtio/index.html +++ b/main/os/drivers/bus/virtio/index.html @@ -1,2 +1 @@ -os::drivers::bus::virtio - Rust -
\ No newline at end of file +os::drivers::bus::virtio - Rust

Module os::drivers::bus::virtio

source ·

Structs§

\ No newline at end of file diff --git a/main/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html b/main/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html index daf23845..fd21df90 100644 --- a/main/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html +++ b/main/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html @@ -1,27 +1,26 @@ -QUEUE_FRAMES in os::drivers::bus::virtio - Rust -

Struct os::drivers::bus::virtio::QUEUE_FRAMES

source ·
struct QUEUE_FRAMES {
+QUEUE_FRAMES in os::drivers::bus::virtio - Rust

Struct os::drivers::bus::virtio::QUEUE_FRAMES

source ·
struct QUEUE_FRAMES {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Vec<FrameTracker>>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for QUEUE_FRAMES

§

type Target = UPIntrFreeCell<Vec<FrameTracker>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Vec<FrameTracker>>

Dereferences the value.
source§

impl LazyStatic for QUEUE_FRAMES

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for QUEUE_FRAMES

§

type Target = UPIntrFreeCell<Vec<FrameTracker>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Vec<FrameTracker>>

Dereferences the value.
source§

impl LazyStatic for QUEUE_FRAMES

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/bus/virtio/struct.VirtioHal.html b/main/os/drivers/bus/virtio/struct.VirtioHal.html index a84658fb..625ba7dd 100644 --- a/main/os/drivers/bus/virtio/struct.VirtioHal.html +++ b/main/os/drivers/bus/virtio/struct.VirtioHal.html @@ -1,25 +1,24 @@ -VirtioHal in os::drivers::bus::virtio - Rust -

Struct os::drivers::bus::virtio::VirtioHal

source ·
pub struct VirtioHal;

Trait Implementations§

source§

impl Hal for VirtioHal

source§

fn dma_alloc(pages: usize) -> usize

Allocates the given number of contiguous physical pages of DMA memory for virtio use.
source§

fn dma_dealloc(pa: usize, pages: usize) -> i32

Deallocates the given contiguous physical DMA memory pages.
source§

fn phys_to_virt(addr: usize) -> usize

Converts a physical address used for virtio to a virtual address which the program can +VirtioHal in os::drivers::bus::virtio - Rust

Struct os::drivers::bus::virtio::VirtioHal

source ·
pub struct VirtioHal;

Trait Implementations§

source§

impl Hal for VirtioHal

source§

fn dma_alloc(pages: usize) -> usize

Allocates the given number of contiguous physical pages of DMA memory for virtio use.
source§

fn dma_dealloc(pa: usize, pages: usize) -> i32

Deallocates the given contiguous physical DMA memory pages.
source§

fn phys_to_virt(addr: usize) -> usize

Converts a physical address used for virtio to a virtual address which the program can access.
source§

fn virt_to_phys(vaddr: usize) -> usize

Converts a virtual address which the program can access to the corresponding physical -address to use for virtio.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +address to use for virtio.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/index.html b/main/os/drivers/chardev/index.html index 5b455dad..dd8ac9bf 100644 --- a/main/os/drivers/chardev/index.html +++ b/main/os/drivers/chardev/index.html @@ -1,2 +1 @@ -os::drivers::chardev - Rust -
\ No newline at end of file +os::drivers::chardev - Rust

Module os::drivers::chardev

source ·

Re-exports§

Modules§

Structs§

Traits§

\ No newline at end of file diff --git a/main/os/drivers/chardev/ns16550a/index.html b/main/os/drivers/chardev/ns16550a/index.html index 774121c6..21ce7c49 100644 --- a/main/os/drivers/chardev/ns16550a/index.html +++ b/main/os/drivers/chardev/ns16550a/index.html @@ -1,2 +1 @@ -os::drivers::chardev::ns16550a - Rust -

Module os::drivers::chardev::ns16550a

source ·

Structs

\ No newline at end of file +os::drivers::chardev::ns16550a - Rust

Module os::drivers::chardev::ns16550a

source ·

Structs§

\ No newline at end of file diff --git a/main/os/drivers/chardev/ns16550a/struct.IER.html b/main/os/drivers/chardev/ns16550a/struct.IER.html index 5470e836..a28bf7cc 100644 --- a/main/os/drivers/chardev/ns16550a/struct.IER.html +++ b/main/os/drivers/chardev/ns16550a/struct.IER.html @@ -1,5 +1,4 @@ -IER in os::drivers::chardev::ns16550a - Rust -

Struct os::drivers::chardev::ns16550a::IER

source ·
pub struct IER {
+IER in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::IER

source ·
pub struct IER {
     bits: u8,
 }
Expand description

InterruptEnableRegister

Fields§

§bits: u8

Implementations§

source§

impl IER

source

pub const RX_AVAILABLE: Self = _

source

pub const TX_EMPTY: Self = _

source

pub const fn empty() -> Self

Returns an empty set of flags.

@@ -11,7 +10,7 @@ representation contains bits that do not correspond to a flag.

that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u8) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

-
Safety
+
§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that @@ -60,34 +59,34 @@ not set in self, but which are allowed for this type.

between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations§

source§

impl Binary for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for IER

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
§

type Output = IER

The resulting type after applying the & operator.
source§

impl BitAndAssign for IER

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+

Trait Implementations§

source§

impl Binary for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for IER

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
§

type Output = IER

The resulting type after applying the & operator.
source§

impl BitAndAssign for IER

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr for IER

source§

fn bitor(self, other: IER) -> Self

Returns the union of the two sets of flags.

-
§

type Output = IER

The resulting type after applying the | operator.
source§

impl BitOrAssign for IER

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
§

type Output = IER

The resulting type after applying the | operator.
source§

impl BitOrAssign for IER

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor for IER

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
§

type Output = IER

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for IER

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
source§

impl Clone for IER

source§

fn clone(&self) -> IER

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<IER> for IER

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<IER> for IER

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for IER

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

§

type Output = IER

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for IER

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
source§

impl Clone for IER

source§

fn clone(&self) -> IER

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<IER> for IER

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<IER> for IER

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for IER

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for IER

source§

fn not(self) -> Self

Returns the complement of this set of flags.

-
§

type Output = IER

The resulting type after applying the ! operator.
source§

impl Octal for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for IER

source§

fn cmp(&self, other: &IER) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for IER

source§

fn not(self) -> Self

Returns the complement of this set of flags.

+
§

type Output = IER

The resulting type after applying the ! operator.
source§

impl Octal for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for IER

source§

fn cmp(&self, other: &IER) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for IER

source§

fn eq(&self, other: &IER) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for IER

source§

fn partial_cmp(&self, other: &IER) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for IER

source§

fn partial_cmp(&self, other: &IER) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub for IER

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

§

type Output = IER

The resulting type after applying the - operator.
source§

impl SubAssign for IER

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
source§

impl UpperHex for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for IER

source§

impl Eq for IER

source§

impl StructuralEq for IER

source§

impl StructuralPartialEq for IER

Auto Trait Implementations§

§

impl RefUnwindSafe for IER

§

impl Send for IER

§

impl Sync for IER

§

impl Unpin for IER

§

impl UnwindSafe for IER

Blanket Implementations§

source§

impl<T> Any for T
where +

source§

impl UpperHex for IER

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for IER

source§

impl Eq for IER

source§

impl StructuralPartialEq for IER

Auto Trait Implementations§

§

impl Freeze for IER

§

impl RefUnwindSafe for IER

§

impl Send for IER

§

impl Sync for IER

§

impl Unpin for IER

§

impl UnwindSafe for IER

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -95,9 +94,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/ns16550a/struct.LSR.html b/main/os/drivers/chardev/ns16550a/struct.LSR.html index 37e2e6e1..45f7de0c 100644 --- a/main/os/drivers/chardev/ns16550a/struct.LSR.html +++ b/main/os/drivers/chardev/ns16550a/struct.LSR.html @@ -1,5 +1,4 @@ -LSR in os::drivers::chardev::ns16550a - Rust -

Struct os::drivers::chardev::ns16550a::LSR

source ·
pub struct LSR {
+LSR in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::LSR

source ·
pub struct LSR {
     bits: u8,
 }
Expand description

LineStatusRegister

Fields§

§bits: u8

Implementations§

source§

impl LSR

source

pub const DATA_AVAILABLE: Self = _

source

pub const THR_EMPTY: Self = _

source

pub const fn empty() -> Self

Returns an empty set of flags.

@@ -11,7 +10,7 @@ representation contains bits that do not correspond to a flag.

that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u8) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

-
Safety
+
§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that @@ -60,34 +59,34 @@ not set in self, but which are allowed for this type.

between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations§

source§

impl Binary for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for LSR

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+

Trait Implementations§

source§

impl Binary for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for LSR

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

§

type Output = LSR

The resulting type after applying the & operator.
source§

impl BitAndAssign for LSR

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr for LSR

source§

fn bitor(self, other: LSR) -> Self

Returns the union of the two sets of flags.

-
§

type Output = LSR

The resulting type after applying the | operator.
source§

impl BitOrAssign for LSR

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
§

type Output = LSR

The resulting type after applying the | operator.
source§

impl BitOrAssign for LSR

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor for LSR

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
§

type Output = LSR

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for LSR

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
source§

impl Clone for LSR

source§

fn clone(&self) -> LSR

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<LSR> for LSR

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<LSR> for LSR

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for LSR

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

§

type Output = LSR

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for LSR

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
source§

impl Clone for LSR

source§

fn clone(&self) -> LSR

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<LSR> for LSR

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<LSR> for LSR

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for LSR

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for LSR

source§

fn not(self) -> Self

Returns the complement of this set of flags.

-
§

type Output = LSR

The resulting type after applying the ! operator.
source§

impl Octal for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for LSR

source§

fn cmp(&self, other: &LSR) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for LSR

source§

fn not(self) -> Self

Returns the complement of this set of flags.

+
§

type Output = LSR

The resulting type after applying the ! operator.
source§

impl Octal for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for LSR

source§

fn cmp(&self, other: &LSR) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for LSR

source§

fn eq(&self, other: &LSR) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for LSR

source§

fn partial_cmp(&self, other: &LSR) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for LSR

source§

fn partial_cmp(&self, other: &LSR) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub for LSR

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
§

type Output = LSR

The resulting type after applying the - operator.
source§

impl SubAssign for LSR

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
source§

impl UpperHex for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for LSR

source§

impl Eq for LSR

source§

impl StructuralEq for LSR

source§

impl StructuralPartialEq for LSR

Auto Trait Implementations§

§

impl RefUnwindSafe for LSR

§

impl Send for LSR

§

impl Sync for LSR

§

impl Unpin for LSR

§

impl UnwindSafe for LSR

Blanket Implementations§

source§

impl<T> Any for T
where +

§

type Output = LSR

The resulting type after applying the - operator.

source§

impl SubAssign for LSR

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
source§

impl UpperHex for LSR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for LSR

source§

impl Eq for LSR

source§

impl StructuralPartialEq for LSR

Auto Trait Implementations§

§

impl Freeze for LSR

§

impl RefUnwindSafe for LSR

§

impl Send for LSR

§

impl Sync for LSR

§

impl Unpin for LSR

§

impl UnwindSafe for LSR

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -95,9 +94,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/ns16550a/struct.MCR.html b/main/os/drivers/chardev/ns16550a/struct.MCR.html index 26de4a8b..5893ae63 100644 --- a/main/os/drivers/chardev/ns16550a/struct.MCR.html +++ b/main/os/drivers/chardev/ns16550a/struct.MCR.html @@ -1,5 +1,4 @@ -MCR in os::drivers::chardev::ns16550a - Rust -

Struct os::drivers::chardev::ns16550a::MCR

source ·
pub struct MCR {
+MCR in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::MCR

source ·
pub struct MCR {
     bits: u8,
 }
Expand description

Model Control Register

Fields§

§bits: u8

Implementations§

source§

impl MCR

source

pub const DATA_TERMINAL_READY: Self = _

source

pub const REQUEST_TO_SEND: Self = _

source

pub const AUX_OUTPUT1: Self = _

source

pub const AUX_OUTPUT2: Self = _

source

pub const fn empty() -> Self

Returns an empty set of flags.

@@ -11,7 +10,7 @@ representation contains bits that do not correspond to a flag.

that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u8) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

-
Safety
+
§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that @@ -61,33 +60,33 @@ between ops::Not), as in !flags.

Trait Implementations§

source§

impl Binary for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for MCR

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
§

type Output = MCR

The resulting type after applying the & operator.
source§

impl BitAndAssign for MCR

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
§

type Output = MCR

The resulting type after applying the & operator.
source§

impl BitAndAssign for MCR

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr for MCR

source§

fn bitor(self, other: MCR) -> Self

Returns the union of the two sets of flags.

-
§

type Output = MCR

The resulting type after applying the | operator.
source§

impl BitOrAssign for MCR

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
§

type Output = MCR

The resulting type after applying the | operator.
source§

impl BitOrAssign for MCR

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor for MCR

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
§

type Output = MCR

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for MCR

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
source§

impl Clone for MCR

source§

fn clone(&self) -> MCR

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<MCR> for MCR

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<MCR> for MCR

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for MCR

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

§

type Output = MCR

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for MCR

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
source§

impl Clone for MCR

source§

fn clone(&self) -> MCR

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<MCR> for MCR

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<MCR> for MCR

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for MCR

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for MCR

source§

fn not(self) -> Self

Returns the complement of this set of flags.

-
§

type Output = MCR

The resulting type after applying the ! operator.
source§

impl Octal for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for MCR

source§

fn cmp(&self, other: &MCR) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for MCR

source§

fn not(self) -> Self

Returns the complement of this set of flags.

+
§

type Output = MCR

The resulting type after applying the ! operator.
source§

impl Octal for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for MCR

source§

fn cmp(&self, other: &MCR) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for MCR

source§

fn eq(&self, other: &MCR) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for MCR

source§

fn partial_cmp(&self, other: &MCR) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for MCR

source§

fn partial_cmp(&self, other: &MCR) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub for MCR

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
§

type Output = MCR

The resulting type after applying the - operator.
source§

impl SubAssign for MCR

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
source§

impl UpperHex for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for MCR

source§

impl Eq for MCR

source§

impl StructuralEq for MCR

source§

impl StructuralPartialEq for MCR

Auto Trait Implementations§

§

impl RefUnwindSafe for MCR

§

impl Send for MCR

§

impl Sync for MCR

§

impl Unpin for MCR

§

impl UnwindSafe for MCR

Blanket Implementations§

source§

impl<T> Any for T
where +

§

type Output = MCR

The resulting type after applying the - operator.

source§

impl SubAssign for MCR

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
source§

impl UpperHex for MCR

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for MCR

source§

impl Eq for MCR

source§

impl StructuralPartialEq for MCR

Auto Trait Implementations§

§

impl Freeze for MCR

§

impl RefUnwindSafe for MCR

§

impl Send for MCR

§

impl Sync for MCR

§

impl Unpin for MCR

§

impl UnwindSafe for MCR

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -95,9 +94,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/ns16550a/struct.NS16550a.html b/main/os/drivers/chardev/ns16550a/struct.NS16550a.html index 4c4ef56b..cdecd91a 100644 --- a/main/os/drivers/chardev/ns16550a/struct.NS16550a.html +++ b/main/os/drivers/chardev/ns16550a/struct.NS16550a.html @@ -1,26 +1,25 @@ -NS16550a in os::drivers::chardev::ns16550a - Rust -
pub struct NS16550a<const BASE_ADDR: usize> {
+NS16550a in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::NS16550a

source ·
pub struct NS16550a<const BASE_ADDR: usize> {
     inner: UPIntrFreeCell<NS16550aInner>,
     condvar: Condvar,
-}

Fields§

§inner: UPIntrFreeCell<NS16550aInner>§condvar: Condvar

Implementations§

source§

impl<const BASE_ADDR: usize> NS16550a<BASE_ADDR>

source

pub fn new() -> Self

source

pub fn read_buffer_is_empty(&self) -> bool

Trait Implementations§

source§

impl<const BASE_ADDR: usize> CharDevice for NS16550a<BASE_ADDR>

source§

fn init(&self)

source§

fn read(&self) -> u8

source§

fn write(&self, ch: u8)

source§

fn handle_irq(&self)

Auto Trait Implementations§

§

impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§inner: UPIntrFreeCell<NS16550aInner>§condvar: Condvar

Implementations§

source§

impl<const BASE_ADDR: usize> NS16550a<BASE_ADDR>

source

pub fn new() -> Self

source

pub fn read_buffer_is_empty(&self) -> bool

Trait Implementations§

source§

impl<const BASE_ADDR: usize> CharDevice for NS16550a<BASE_ADDR>

source§

fn init(&self)

source§

fn read(&self) -> u8

source§

fn write(&self, ch: u8)

source§

fn handle_irq(&self)

Auto Trait Implementations§

§

impl<const BASE_ADDR: usize> !Freeze for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>

§

impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html b/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html index 02d76245..03674c53 100644 --- a/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html +++ b/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html @@ -1,26 +1,25 @@ -NS16550aInner in os::drivers::chardev::ns16550a - Rust -
struct NS16550aInner {
+NS16550aInner in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::NS16550aInner

source ·
struct NS16550aInner {
     ns16550a: NS16550aRaw,
     read_buffer: VecDeque<u8>,
-}

Fields§

§ns16550a: NS16550aRaw§read_buffer: VecDeque<u8>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§ns16550a: NS16550aRaw§read_buffer: VecDeque<u8>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html b/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html index 35c465c0..c81133d9 100644 --- a/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html +++ b/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html @@ -1,25 +1,24 @@ -NS16550aRaw in os::drivers::chardev::ns16550a - Rust -
pub struct NS16550aRaw {
+NS16550aRaw in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::NS16550aRaw

source ·
pub struct NS16550aRaw {
     base_addr: usize,
-}

Fields§

§base_addr: usize

Implementations§

source§

impl NS16550aRaw

source

fn read_end(&mut self) -> &mut ReadWithoutDLAB

source

fn write_end(&mut self) -> &mut WriteWithoutDLAB

source

pub fn new(base_addr: usize) -> Self

source

pub fn init(&mut self)

source

pub fn read(&mut self) -> Option<u8>

source

pub fn write(&mut self, ch: u8)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§base_addr: usize

Implementations§

source§

impl NS16550aRaw

source

fn read_end(&mut self) -> &mut ReadWithoutDLAB

source

fn write_end(&mut self) -> &mut WriteWithoutDLAB

source

pub fn new(base_addr: usize) -> Self

source

pub fn init(&mut self)

source

pub fn read(&mut self) -> Option<u8>

source

pub fn write(&mut self, ch: u8)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html b/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html index 29165bf1..9918259f 100644 --- a/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html +++ b/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html @@ -1,5 +1,4 @@ -ReadWithoutDLAB in os::drivers::chardev::ns16550a - Rust -
#[repr(C)]
struct ReadWithoutDLAB { +ReadWithoutDLAB in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::ReadWithoutDLAB

source ·
#[repr(C)]
struct ReadWithoutDLAB { pub rbr: ReadOnly<u8>, pub ier: Volatile<IER>, pub iir: ReadOnly<u8>, @@ -16,25 +15,25 @@
§lsr: ReadOnly<LSR>

line status register

§_padding1: ReadOnly<u8>

ignore MSR

§_padding2: ReadOnly<u8>

ignore SCR

-

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html b/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html index 7ff886c8..d8f2093d 100644 --- a/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html +++ b/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html @@ -1,5 +1,4 @@ -WriteWithoutDLAB in os::drivers::chardev::ns16550a - Rust -
#[repr(C)]
struct WriteWithoutDLAB { +WriteWithoutDLAB in os::drivers::chardev::ns16550a - Rust

Struct os::drivers::chardev::ns16550a::WriteWithoutDLAB

source ·
#[repr(C)]
struct WriteWithoutDLAB { pub thr: WriteOnly<u8>, pub ier: Volatile<IER>, _padding0: ReadOnly<u8>, @@ -14,25 +13,25 @@
§mcr: Volatile<MCR>

modem control register

§lsr: ReadOnly<LSR>

line status register

§_padding1: ReadOnly<u16>

ignore other registers

-

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/struct.UART.html b/main/os/drivers/chardev/struct.UART.html index 775e7b6c..a206fa92 100644 --- a/main/os/drivers/chardev/struct.UART.html +++ b/main/os/drivers/chardev/struct.UART.html @@ -1,25 +1,24 @@ -UART in os::drivers::chardev - Rust -

Struct os::drivers::chardev::UART

source ·
pub struct UART {
+UART in os::drivers::chardev - Rust

Struct os::drivers::chardev::UART

source ·
pub struct UART {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for UART

§

type Target = Arc<NS16550a<VIRT_UART>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<NS16550a<VIRT_UART>>

Dereferences the value.
source§

impl LazyStatic for UART

Auto Trait Implementations§

§

impl RefUnwindSafe for UART

§

impl Send for UART

§

impl Sync for UART

§

impl Unpin for UART

§

impl UnwindSafe for UART

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for UART

§

type Target = Arc<NS16550a<VIRT_UART>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<NS16550a<VIRT_UART>>

Dereferences the value.
source§

impl LazyStatic for UART

Auto Trait Implementations§

§

impl Freeze for UART

§

impl RefUnwindSafe for UART

§

impl Send for UART

§

impl Sync for UART

§

impl Unpin for UART

§

impl UnwindSafe for UART

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/chardev/trait.CharDevice.html b/main/os/drivers/chardev/trait.CharDevice.html index c4dfae43..475e0b1a 100644 --- a/main/os/drivers/chardev/trait.CharDevice.html +++ b/main/os/drivers/chardev/trait.CharDevice.html @@ -1,5 +1,4 @@ -CharDevice in os::drivers::chardev - Rust -
pub trait CharDevice {
+CharDevice in os::drivers::chardev - Rust

Trait os::drivers::chardev::CharDevice

source ·
pub trait CharDevice {
     // Required methods
     fn init(&self);
     fn read(&self) -> u8;
diff --git a/main/os/drivers/gpu/constant.VIRTIO7.html b/main/os/drivers/gpu/constant.VIRTIO7.html
index bf732494..c4e5e23d 100644
--- a/main/os/drivers/gpu/constant.VIRTIO7.html
+++ b/main/os/drivers/gpu/constant.VIRTIO7.html
@@ -1,2 +1 @@
-VIRTIO7 in os::drivers::gpu - Rust
-    

Constant os::drivers::gpu::VIRTIO7

source ·
const VIRTIO7: usize = 0x10007000;
\ No newline at end of file +VIRTIO7 in os::drivers::gpu - Rust

Constant os::drivers::gpu::VIRTIO7

source ·
const VIRTIO7: usize = 0x10007000;
\ No newline at end of file diff --git a/main/os/drivers/gpu/index.html b/main/os/drivers/gpu/index.html index 5646c67d..a675c202 100644 --- a/main/os/drivers/gpu/index.html +++ b/main/os/drivers/gpu/index.html @@ -1,2 +1 @@ -os::drivers::gpu - Rust -
\ No newline at end of file +os::drivers::gpu - Rust

Module os::drivers::gpu

source ·

Structs§

Constants§

Statics§

Traits§

\ No newline at end of file diff --git a/main/os/drivers/gpu/static.BMP_DATA.html b/main/os/drivers/gpu/static.BMP_DATA.html index c99b4e1a..65130f20 100644 --- a/main/os/drivers/gpu/static.BMP_DATA.html +++ b/main/os/drivers/gpu/static.BMP_DATA.html @@ -1,2 +1 @@ -BMP_DATA in os::drivers::gpu - Rust -

Static os::drivers::gpu::BMP_DATA

source ·
static BMP_DATA: &[u8]
\ No newline at end of file +BMP_DATA in os::drivers::gpu - Rust

Static os::drivers::gpu::BMP_DATA

source ·
static BMP_DATA: &[u8]
\ No newline at end of file diff --git a/main/os/drivers/gpu/struct.GPU_DEVICE.html b/main/os/drivers/gpu/struct.GPU_DEVICE.html index bd9d5cf3..bb2a6799 100644 --- a/main/os/drivers/gpu/struct.GPU_DEVICE.html +++ b/main/os/drivers/gpu/struct.GPU_DEVICE.html @@ -1,25 +1,24 @@ -GPU_DEVICE in os::drivers::gpu - Rust -

Struct os::drivers::gpu::GPU_DEVICE

source ·
pub struct GPU_DEVICE {
+GPU_DEVICE in os::drivers::gpu - Rust

Struct os::drivers::gpu::GPU_DEVICE

source ·
pub struct GPU_DEVICE {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for GPU_DEVICE

§

type Target = Arc<dyn GpuDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn GpuDevice>

Dereferences the value.
source§

impl LazyStatic for GPU_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for GPU_DEVICE

§

type Target = Arc<dyn GpuDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn GpuDevice>

Dereferences the value.
source§

impl LazyStatic for GPU_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/gpu/struct.VirtIOGpuWrapper.html b/main/os/drivers/gpu/struct.VirtIOGpuWrapper.html index 67d30991..f6de224c 100644 --- a/main/os/drivers/gpu/struct.VirtIOGpuWrapper.html +++ b/main/os/drivers/gpu/struct.VirtIOGpuWrapper.html @@ -1,26 +1,25 @@ -VirtIOGpuWrapper in os::drivers::gpu - Rust -
pub struct VirtIOGpuWrapper {
+VirtIOGpuWrapper in os::drivers::gpu - Rust

Struct os::drivers::gpu::VirtIOGpuWrapper

source ·
pub struct VirtIOGpuWrapper {
     gpu: UPIntrFreeCell<VirtIOGpu<'static, VirtioHal>>,
     fb: &'static [u8],
-}

Fields§

§gpu: UPIntrFreeCell<VirtIOGpu<'static, VirtioHal>>§fb: &'static [u8]

Implementations§

source§

impl VirtIOGpuWrapper

source

pub fn new() -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§gpu: UPIntrFreeCell<VirtIOGpu<'static, VirtioHal>>§fb: &'static [u8]

Implementations§

source§

impl VirtIOGpuWrapper

source

pub fn new() -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/gpu/trait.GpuDevice.html b/main/os/drivers/gpu/trait.GpuDevice.html index 90996a86..9ecc195c 100644 --- a/main/os/drivers/gpu/trait.GpuDevice.html +++ b/main/os/drivers/gpu/trait.GpuDevice.html @@ -1,5 +1,4 @@ -GpuDevice in os::drivers::gpu - Rust -

Trait os::drivers::gpu::GpuDevice

source ·
pub trait GpuDevice: Send + Sync + Any {
+GpuDevice in os::drivers::gpu - Rust

Trait os::drivers::gpu::GpuDevice

source ·
pub trait GpuDevice: Send + Sync + Any {
     // Required methods
     fn update_cursor(&self);
     fn get_framebuffer(&self) -> &mut [u8];
diff --git a/main/os/drivers/index.html b/main/os/drivers/index.html
index 2825ba10..5ca55001 100644
--- a/main/os/drivers/index.html
+++ b/main/os/drivers/index.html
@@ -1,2 +1 @@
-os::drivers - Rust
-    

Module os::drivers

source ·

Re-exports

Modules

\ No newline at end of file +os::drivers - Rust

Module os::drivers

source ·

Re-exports§

Modules§

\ No newline at end of file diff --git a/main/os/drivers/input/constant.VIRTIO5.html b/main/os/drivers/input/constant.VIRTIO5.html index fc474738..d72960fd 100644 --- a/main/os/drivers/input/constant.VIRTIO5.html +++ b/main/os/drivers/input/constant.VIRTIO5.html @@ -1,2 +1 @@ -VIRTIO5 in os::drivers::input - Rust -

Constant os::drivers::input::VIRTIO5

source ·
const VIRTIO5: usize = 0x10005000;
\ No newline at end of file +VIRTIO5 in os::drivers::input - Rust

Constant os::drivers::input::VIRTIO5

source ·
const VIRTIO5: usize = 0x10005000;
\ No newline at end of file diff --git a/main/os/drivers/input/constant.VIRTIO6.html b/main/os/drivers/input/constant.VIRTIO6.html index 487a4ac1..244f8b7a 100644 --- a/main/os/drivers/input/constant.VIRTIO6.html +++ b/main/os/drivers/input/constant.VIRTIO6.html @@ -1,2 +1 @@ -VIRTIO6 in os::drivers::input - Rust -

Constant os::drivers::input::VIRTIO6

source ·
const VIRTIO6: usize = 0x10006000;
\ No newline at end of file +VIRTIO6 in os::drivers::input - Rust

Constant os::drivers::input::VIRTIO6

source ·
const VIRTIO6: usize = 0x10006000;
\ No newline at end of file diff --git a/main/os/drivers/input/index.html b/main/os/drivers/input/index.html index d6c288ea..080bd219 100644 --- a/main/os/drivers/input/index.html +++ b/main/os/drivers/input/index.html @@ -1,2 +1 @@ -os::drivers::input - Rust -
\ No newline at end of file +os::drivers::input - Rust

Module os::drivers::input

source ·

Structs§

Constants§

Traits§

\ No newline at end of file diff --git a/main/os/drivers/input/struct.KEYBOARD_DEVICE.html b/main/os/drivers/input/struct.KEYBOARD_DEVICE.html index f2596f66..17fe12c3 100644 --- a/main/os/drivers/input/struct.KEYBOARD_DEVICE.html +++ b/main/os/drivers/input/struct.KEYBOARD_DEVICE.html @@ -1,25 +1,24 @@ -KEYBOARD_DEVICE in os::drivers::input - Rust -
pub struct KEYBOARD_DEVICE {
+KEYBOARD_DEVICE in os::drivers::input - Rust

Struct os::drivers::input::KEYBOARD_DEVICE

source ·
pub struct KEYBOARD_DEVICE {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for KEYBOARD_DEVICE

§

type Target = Arc<dyn InputDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn InputDevice>

Dereferences the value.
source§

impl LazyStatic for KEYBOARD_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for KEYBOARD_DEVICE

§

type Target = Arc<dyn InputDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn InputDevice>

Dereferences the value.
source§

impl LazyStatic for KEYBOARD_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/input/struct.MOUSE_DEVICE.html b/main/os/drivers/input/struct.MOUSE_DEVICE.html index 01746569..3ffccddf 100644 --- a/main/os/drivers/input/struct.MOUSE_DEVICE.html +++ b/main/os/drivers/input/struct.MOUSE_DEVICE.html @@ -1,25 +1,24 @@ -MOUSE_DEVICE in os::drivers::input - Rust -

Struct os::drivers::input::MOUSE_DEVICE

source ·
pub struct MOUSE_DEVICE {
+MOUSE_DEVICE in os::drivers::input - Rust

Struct os::drivers::input::MOUSE_DEVICE

source ·
pub struct MOUSE_DEVICE {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for MOUSE_DEVICE

§

type Target = Arc<dyn InputDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn InputDevice>

Dereferences the value.
source§

impl LazyStatic for MOUSE_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for MOUSE_DEVICE

§

type Target = Arc<dyn InputDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn InputDevice>

Dereferences the value.
source§

impl LazyStatic for MOUSE_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/input/struct.VirtIOInputInner.html b/main/os/drivers/input/struct.VirtIOInputInner.html index 1d93fa84..c7187cbd 100644 --- a/main/os/drivers/input/struct.VirtIOInputInner.html +++ b/main/os/drivers/input/struct.VirtIOInputInner.html @@ -1,26 +1,25 @@ -VirtIOInputInner in os::drivers::input - Rust -
struct VirtIOInputInner {
+VirtIOInputInner in os::drivers::input - Rust

Struct os::drivers::input::VirtIOInputInner

source ·
struct VirtIOInputInner {
     virtio_input: VirtIOInput<'static, VirtioHal>,
     events: VecDeque<u64>,
-}

Fields§

§virtio_input: VirtIOInput<'static, VirtioHal>§events: VecDeque<u64>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§virtio_input: VirtIOInput<'static, VirtioHal>§events: VecDeque<u64>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/input/struct.VirtIOInputWrapper.html b/main/os/drivers/input/struct.VirtIOInputWrapper.html index 82c9678a..d3235f8e 100644 --- a/main/os/drivers/input/struct.VirtIOInputWrapper.html +++ b/main/os/drivers/input/struct.VirtIOInputWrapper.html @@ -1,26 +1,25 @@ -VirtIOInputWrapper in os::drivers::input - Rust -
struct VirtIOInputWrapper {
+VirtIOInputWrapper in os::drivers::input - Rust

Struct os::drivers::input::VirtIOInputWrapper

source ·
struct VirtIOInputWrapper {
     inner: UPIntrFreeCell<VirtIOInputInner>,
     condvar: Condvar,
-}

Fields§

§inner: UPIntrFreeCell<VirtIOInputInner>§condvar: Condvar

Implementations§

source§

impl VirtIOInputWrapper

source

pub fn new(addr: usize) -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§inner: UPIntrFreeCell<VirtIOInputInner>§condvar: Condvar

Implementations§

source§

impl VirtIOInputWrapper

source

pub fn new(addr: usize) -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/input/trait.InputDevice.html b/main/os/drivers/input/trait.InputDevice.html index 3929df1f..25ed5576 100644 --- a/main/os/drivers/input/trait.InputDevice.html +++ b/main/os/drivers/input/trait.InputDevice.html @@ -1,5 +1,4 @@ -InputDevice in os::drivers::input - Rust -

Trait os::drivers::input::InputDevice

source ·
pub trait InputDevice: Send + Sync + Any {
+InputDevice in os::drivers::input - Rust

Trait os::drivers::input::InputDevice

source ·
pub trait InputDevice: Send + Sync + Any {
     // Required methods
     fn read_event(&self) -> u64;
     fn handle_irq(&self);
diff --git a/main/os/drivers/net/constant.VIRTIO8.html b/main/os/drivers/net/constant.VIRTIO8.html
index 206995d9..0d0d4bce 100644
--- a/main/os/drivers/net/constant.VIRTIO8.html
+++ b/main/os/drivers/net/constant.VIRTIO8.html
@@ -1,2 +1 @@
-VIRTIO8 in os::drivers::net - Rust
-    

Constant os::drivers::net::VIRTIO8

source ·
const VIRTIO8: usize = 0x10004000;
\ No newline at end of file +VIRTIO8 in os::drivers::net - Rust

Constant os::drivers::net::VIRTIO8

source ·
const VIRTIO8: usize = 0x10004000;
\ No newline at end of file diff --git a/main/os/drivers/net/index.html b/main/os/drivers/net/index.html index 712ccda5..72bc8d73 100644 --- a/main/os/drivers/net/index.html +++ b/main/os/drivers/net/index.html @@ -1,2 +1 @@ -os::drivers::net - Rust -
\ No newline at end of file +os::drivers::net - Rust

Module os::drivers::net

source ·

Structs§

Constants§

Traits§

\ No newline at end of file diff --git a/main/os/drivers/net/struct.NET_DEVICE.html b/main/os/drivers/net/struct.NET_DEVICE.html index fe9e5c4a..edff3754 100644 --- a/main/os/drivers/net/struct.NET_DEVICE.html +++ b/main/os/drivers/net/struct.NET_DEVICE.html @@ -1,25 +1,24 @@ -NET_DEVICE in os::drivers::net - Rust -

Struct os::drivers::net::NET_DEVICE

source ·
pub struct NET_DEVICE {
+NET_DEVICE in os::drivers::net - Rust

Struct os::drivers::net::NET_DEVICE

source ·
pub struct NET_DEVICE {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for NET_DEVICE

§

type Target = Arc<dyn NetDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn NetDevice>

Dereferences the value.
source§

impl LazyStatic for NET_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for NET_DEVICE

§

type Target = Arc<dyn NetDevice>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<dyn NetDevice>

Dereferences the value.
source§

impl LazyStatic for NET_DEVICE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/net/struct.VirtIONetWrapper.html b/main/os/drivers/net/struct.VirtIONetWrapper.html index c061b729..ff494283 100644 --- a/main/os/drivers/net/struct.VirtIONetWrapper.html +++ b/main/os/drivers/net/struct.VirtIONetWrapper.html @@ -1,23 +1,22 @@ -VirtIONetWrapper in os::drivers::net - Rust -
pub struct VirtIONetWrapper(UPIntrFreeCell<VirtIONet<'static, VirtioHal>>);

Tuple Fields§

§0: UPIntrFreeCell<VirtIONet<'static, VirtioHal>>

Implementations§

source§

impl VirtIONetWrapper

source

pub fn new() -> Self

Trait Implementations§

source§

impl NetDevice for VirtIONetWrapper

source§

fn transmit(&self, data: &[u8])

source§

fn receive(&self, data: &mut [u8]) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +VirtIONetWrapper in os::drivers::net - Rust

Struct os::drivers::net::VirtIONetWrapper

source ·
pub struct VirtIONetWrapper(UPIntrFreeCell<VirtIONet<'static, VirtioHal>>);

Tuple Fields§

§0: UPIntrFreeCell<VirtIONet<'static, VirtioHal>>

Implementations§

source§

impl VirtIONetWrapper

source

pub fn new() -> Self

Trait Implementations§

source§

impl NetDevice for VirtIONetWrapper

source§

fn transmit(&self, data: &[u8])

source§

fn receive(&self, data: &mut [u8]) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/net/trait.NetDevice.html b/main/os/drivers/net/trait.NetDevice.html index 8dc5677e..bfa54f55 100644 --- a/main/os/drivers/net/trait.NetDevice.html +++ b/main/os/drivers/net/trait.NetDevice.html @@ -1,5 +1,4 @@ -NetDevice in os::drivers::net - Rust -

Trait os::drivers::net::NetDevice

source ·
pub trait NetDevice: Send + Sync + Any {
+NetDevice in os::drivers::net - Rust

Trait os::drivers::net::NetDevice

source ·
pub trait NetDevice: Send + Sync + Any {
     // Required methods
     fn transmit(&self, data: &[u8]);
     fn receive(&self, data: &mut [u8]) -> usize;
diff --git a/main/os/drivers/plic/enum.IntrTargetPriority.html b/main/os/drivers/plic/enum.IntrTargetPriority.html
index 61bd7b4c..0cfc2eb3 100644
--- a/main/os/drivers/plic/enum.IntrTargetPriority.html
+++ b/main/os/drivers/plic/enum.IntrTargetPriority.html
@@ -1,17 +1,16 @@
-IntrTargetPriority in os::drivers::plic - Rust
-    
pub enum IntrTargetPriority {
+IntrTargetPriority in os::drivers::plic - Rust

Enum os::drivers::plic::IntrTargetPriority

source ·
pub enum IntrTargetPriority {
     Machine = 0,
     Supervisor = 1,
-}

Variants§

§

Machine = 0

§

Supervisor = 1

Implementations§

Trait Implementations§

source§

impl Clone for IntrTargetPriority

source§

fn clone(&self) -> IntrTargetPriority

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Copy for IntrTargetPriority

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Variants§

§

Machine = 0

§

Supervisor = 1

Implementations§

Trait Implementations§

source§

impl Clone for IntrTargetPriority

source§

fn clone(&self) -> IntrTargetPriority

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Copy for IntrTargetPriority

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -19,9 +18,9 @@ Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/drivers/plic/index.html b/main/os/drivers/plic/index.html index 09157683..c15ee68f 100644 --- a/main/os/drivers/plic/index.html +++ b/main/os/drivers/plic/index.html @@ -1,2 +1 @@ -os::drivers::plic - Rust -
\ No newline at end of file +os::drivers::plic - Rust

Module os::drivers::plic

source ·

Structs§

Enums§

\ No newline at end of file diff --git a/main/os/drivers/plic/struct.PLIC.html b/main/os/drivers/plic/struct.PLIC.html index 7846672d..baabe6c7 100644 --- a/main/os/drivers/plic/struct.PLIC.html +++ b/main/os/drivers/plic/struct.PLIC.html @@ -1,5 +1,4 @@ -PLIC in os::drivers::plic - Rust -

Struct os::drivers::plic::PLIC

source ·
pub struct PLIC {
+PLIC in os::drivers::plic - Rust

Struct os::drivers::plic::PLIC

source ·
pub struct PLIC {
     base_addr: usize,
 }

Fields§

§base_addr: usize

Implementations§

source§

impl PLIC

source

fn priority_ptr(&self, intr_source_id: usize) -> *mut u32

source

fn hart_id_with_priority( hart_id: usize, @@ -45,25 +44,25 @@ hart_id: usize, target_priority: IntrTargetPriority, completion: u32 -)

Auto Trait Implementations§

§

impl RefUnwindSafe for PLIC

§

impl Send for PLIC

§

impl Sync for PLIC

§

impl Unpin for PLIC

§

impl UnwindSafe for PLIC

Blanket Implementations§

source§

impl<T> Any for T
where +)

Auto Trait Implementations§

§

impl Freeze for PLIC

§

impl RefUnwindSafe for PLIC

§

impl Send for PLIC

§

impl Sync for PLIC

§

impl Unpin for PLIC

§

impl UnwindSafe for PLIC

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fn.clear_bss.html b/main/os/fn.clear_bss.html index d87a254d..133b800e 100644 --- a/main/os/fn.clear_bss.html +++ b/main/os/fn.clear_bss.html @@ -1,2 +1 @@ -clear_bss in os - Rust -

Function os::clear_bss

source ·
pub(crate) fn clear_bss()
\ No newline at end of file +clear_bss in os - Rust

Function os::clear_bss

source ·
pub(crate) fn clear_bss()
\ No newline at end of file diff --git a/main/os/fn.rust_main.html b/main/os/fn.rust_main.html index 80222941..87d6676e 100644 --- a/main/os/fn.rust_main.html +++ b/main/os/fn.rust_main.html @@ -1,3 +1,2 @@ -rust_main in os - Rust -

Function os::rust_main

source ·
#[no_mangle]
+rust_main in os - Rust

Function os::rust_main

source ·
#[no_mangle]
 pub fn rust_main() -> !
\ No newline at end of file diff --git a/main/os/fs/index.html b/main/os/fs/index.html index 1311411b..b5bda0fb 100644 --- a/main/os/fs/index.html +++ b/main/os/fs/index.html @@ -1,2 +1 @@ -os::fs - Rust -

Module os::fs

source ·

Re-exports

Modules

Traits

\ No newline at end of file +os::fs - Rust

Module os::fs

source ·

Re-exports§

Modules§

Traits§

\ No newline at end of file diff --git a/main/os/fs/inode/fn.list_apps.html b/main/os/fs/inode/fn.list_apps.html index 8ea94cc8..654acbc6 100644 --- a/main/os/fs/inode/fn.list_apps.html +++ b/main/os/fs/inode/fn.list_apps.html @@ -1,2 +1 @@ -list_apps in os::fs::inode - Rust -

Function os::fs::inode::list_apps

source ·
pub fn list_apps()
\ No newline at end of file +list_apps in os::fs::inode - Rust

Function os::fs::inode::list_apps

source ·
pub fn list_apps()
\ No newline at end of file diff --git a/main/os/fs/inode/fn.open_file.html b/main/os/fs/inode/fn.open_file.html index 1a38ee04..b78c5fc6 100644 --- a/main/os/fs/inode/fn.open_file.html +++ b/main/os/fs/inode/fn.open_file.html @@ -1,2 +1 @@ -open_file in os::fs::inode - Rust -

Function os::fs::inode::open_file

source ·
pub fn open_file(name: &str, flags: OpenFlags) -> Option<Arc<OSInode>>
\ No newline at end of file +open_file in os::fs::inode - Rust

Function os::fs::inode::open_file

source ·
pub fn open_file(name: &str, flags: OpenFlags) -> Option<Arc<OSInode>>
\ No newline at end of file diff --git a/main/os/fs/inode/index.html b/main/os/fs/inode/index.html index b9b58f91..5c94dcb0 100644 --- a/main/os/fs/inode/index.html +++ b/main/os/fs/inode/index.html @@ -1,2 +1 @@ -os::fs::inode - Rust -
\ No newline at end of file +os::fs::inode - Rust
\ No newline at end of file diff --git a/main/os/fs/inode/struct.OSInode.html b/main/os/fs/inode/struct.OSInode.html index deb9584a..ff11181e 100644 --- a/main/os/fs/inode/struct.OSInode.html +++ b/main/os/fs/inode/struct.OSInode.html @@ -1,27 +1,26 @@ -OSInode in os::fs::inode - Rust -

Struct os::fs::inode::OSInode

source ·
pub struct OSInode {
+OSInode in os::fs::inode - Rust

Struct os::fs::inode::OSInode

source ·
pub struct OSInode {
     readable: bool,
     writable: bool,
     inner: UPIntrFreeCell<OSInodeInner>,
-}

Fields§

§readable: bool§writable: bool§inner: UPIntrFreeCell<OSInodeInner>

Implementations§

source§

impl OSInode

source

pub fn new(readable: bool, writable: bool, inode: Arc<Inode>) -> Self

source

pub fn read_all(&self) -> Vec<u8>

Trait Implementations§

source§

impl File for OSInode

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§readable: bool§writable: bool§inner: UPIntrFreeCell<OSInodeInner>

Implementations§

source§

impl OSInode

source

pub fn new(readable: bool, writable: bool, inode: Arc<Inode>) -> Self

source

pub fn read_all(&self) -> Vec<u8>

Trait Implementations§

source§

impl File for OSInode

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/inode/struct.OSInodeInner.html b/main/os/fs/inode/struct.OSInodeInner.html index 036da45b..bc0e97b7 100644 --- a/main/os/fs/inode/struct.OSInodeInner.html +++ b/main/os/fs/inode/struct.OSInodeInner.html @@ -1,26 +1,25 @@ -OSInodeInner in os::fs::inode - Rust -

Struct os::fs::inode::OSInodeInner

source ·
pub struct OSInodeInner {
+OSInodeInner in os::fs::inode - Rust

Struct os::fs::inode::OSInodeInner

source ·
pub struct OSInodeInner {
     offset: usize,
     inode: Arc<Inode>,
-}

Fields§

§offset: usize§inode: Arc<Inode>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§offset: usize§inode: Arc<Inode>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/inode/struct.OpenFlags.html b/main/os/fs/inode/struct.OpenFlags.html index c2157e0d..03cfd675 100644 --- a/main/os/fs/inode/struct.OpenFlags.html +++ b/main/os/fs/inode/struct.OpenFlags.html @@ -1,5 +1,4 @@ -OpenFlags in os::fs::inode - Rust -

Struct os::fs::inode::OpenFlags

source ·
pub struct OpenFlags {
+OpenFlags in os::fs::inode - Rust

Struct os::fs::inode::OpenFlags

source ·
pub struct OpenFlags {
     bits: u32,
 }

Fields§

§bits: u32

Implementations§

source§

impl OpenFlags

source

pub const RDONLY: Self = _

source

pub const WRONLY: Self = _

source

pub const RDWR: Self = _

source

pub const CREATE: Self = _

source

pub const TRUNC: Self = _

source

pub const fn empty() -> Self

Returns an empty set of flags.

source

pub const fn all() -> Self

Returns the set containing all flags.

@@ -10,7 +9,7 @@ representation contains bits that do not correspond to a flag.

that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u32) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

-
Safety
+
§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that @@ -62,33 +61,33 @@ between

source§

impl OpenFlags

source

pub fn read_write(&self) -> (bool, bool)

Do not check validity for simplicity Return (readable, writable)

Trait Implementations§

source§

impl Binary for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for OpenFlags

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
§

type Output = OpenFlags

The resulting type after applying the & operator.
source§

impl BitAndAssign for OpenFlags

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
§

type Output = OpenFlags

The resulting type after applying the & operator.
source§

impl BitAndAssign for OpenFlags

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr for OpenFlags

source§

fn bitor(self, other: OpenFlags) -> Self

Returns the union of the two sets of flags.

-
§

type Output = OpenFlags

The resulting type after applying the | operator.
source§

impl BitOrAssign for OpenFlags

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
§

type Output = OpenFlags

The resulting type after applying the | operator.
source§

impl BitOrAssign for OpenFlags

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor for OpenFlags

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
§

type Output = OpenFlags

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for OpenFlags

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
source§

impl Clone for OpenFlags

source§

fn clone(&self) -> OpenFlags

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<OpenFlags> for OpenFlags

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<OpenFlags> for OpenFlags

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for OpenFlags

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

§

type Output = OpenFlags

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for OpenFlags

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
source§

impl Clone for OpenFlags

source§

fn clone(&self) -> OpenFlags

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<OpenFlags> for OpenFlags

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<OpenFlags> for OpenFlags

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for OpenFlags

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for OpenFlags

source§

fn not(self) -> Self

Returns the complement of this set of flags.

-
§

type Output = OpenFlags

The resulting type after applying the ! operator.
source§

impl Octal for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for OpenFlags

source§

fn cmp(&self, other: &OpenFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for OpenFlags

source§

fn not(self) -> Self

Returns the complement of this set of flags.

+
§

type Output = OpenFlags

The resulting type after applying the ! operator.
source§

impl Octal for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for OpenFlags

source§

fn cmp(&self, other: &OpenFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for OpenFlags

source§

fn eq(&self, other: &OpenFlags) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for OpenFlags

source§

fn partial_cmp(&self, other: &OpenFlags) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for OpenFlags

source§

fn partial_cmp(&self, other: &OpenFlags) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub for OpenFlags

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
§

type Output = OpenFlags

The resulting type after applying the - operator.
source§

impl SubAssign for OpenFlags

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
source§

impl UpperHex for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for OpenFlags

source§

impl Eq for OpenFlags

source§

impl StructuralEq for OpenFlags

source§

impl StructuralPartialEq for OpenFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

§

type Output = OpenFlags

The resulting type after applying the - operator.
source§

impl SubAssign for OpenFlags

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
source§

impl UpperHex for OpenFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for OpenFlags

source§

impl Eq for OpenFlags

source§

impl StructuralPartialEq for OpenFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -96,9 +95,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/inode/struct.ROOT_INODE.html b/main/os/fs/inode/struct.ROOT_INODE.html index ffb1759d..366031ca 100644 --- a/main/os/fs/inode/struct.ROOT_INODE.html +++ b/main/os/fs/inode/struct.ROOT_INODE.html @@ -1,25 +1,24 @@ -ROOT_INODE in os::fs::inode - Rust -

Struct os::fs::inode::ROOT_INODE

source ·
pub struct ROOT_INODE {
+ROOT_INODE in os::fs::inode - Rust

Struct os::fs::inode::ROOT_INODE

source ·
pub struct ROOT_INODE {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for ROOT_INODE

§

type Target = Arc<Inode>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<Inode>

Dereferences the value.
source§

impl LazyStatic for ROOT_INODE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for ROOT_INODE

§

type Target = Arc<Inode>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<Inode>

Dereferences the value.
source§

impl LazyStatic for ROOT_INODE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/pipe/constant.RING_BUFFER_SIZE.html b/main/os/fs/pipe/constant.RING_BUFFER_SIZE.html index b08f3027..c30359c9 100644 --- a/main/os/fs/pipe/constant.RING_BUFFER_SIZE.html +++ b/main/os/fs/pipe/constant.RING_BUFFER_SIZE.html @@ -1,2 +1 @@ -RING_BUFFER_SIZE in os::fs::pipe - Rust -

Constant os::fs::pipe::RING_BUFFER_SIZE

source ·
const RING_BUFFER_SIZE: usize = 32;
\ No newline at end of file +RING_BUFFER_SIZE in os::fs::pipe - Rust

Constant os::fs::pipe::RING_BUFFER_SIZE

source ·
const RING_BUFFER_SIZE: usize = 32;
\ No newline at end of file diff --git a/main/os/fs/pipe/enum.RingBufferStatus.html b/main/os/fs/pipe/enum.RingBufferStatus.html index 21ed91d0..8ec0ca40 100644 --- a/main/os/fs/pipe/enum.RingBufferStatus.html +++ b/main/os/fs/pipe/enum.RingBufferStatus.html @@ -1,20 +1,19 @@ -RingBufferStatus in os::fs::pipe - Rust -

Enum os::fs::pipe::RingBufferStatus

source ·
enum RingBufferStatus {
+RingBufferStatus in os::fs::pipe - Rust

Enum os::fs::pipe::RingBufferStatus

source ·
enum RingBufferStatus {
     Full,
     Empty,
     Normal,
 }

Variants§

§

Full

§

Empty

§

Normal

Trait Implementations§

source§

impl Clone for RingBufferStatus

source§

fn clone(&self) -> RingBufferStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl PartialEq for RingBufferStatus

source§

fn eq(&self, other: &RingBufferStatus) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for RingBufferStatus

source§

impl StructuralPartialEq for RingBufferStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

source§

impl Copy for RingBufferStatus

source§

impl StructuralPartialEq for RingBufferStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -22,9 +21,9 @@ sufficient, and should not be overridden without very good reason.
OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/pipe/fn.make_pipe.html b/main/os/fs/pipe/fn.make_pipe.html index f4766c1e..8f84d3d0 100644 --- a/main/os/fs/pipe/fn.make_pipe.html +++ b/main/os/fs/pipe/fn.make_pipe.html @@ -1,3 +1,2 @@ -make_pipe in os::fs::pipe - Rust -

Function os::fs::pipe::make_pipe

source ·
pub fn make_pipe() -> (Arc<Pipe>, Arc<Pipe>)
Expand description

Return (read_end, write_end)

+make_pipe in os::fs::pipe - Rust

Function os::fs::pipe::make_pipe

source ·
pub fn make_pipe() -> (Arc<Pipe>, Arc<Pipe>)
Expand description

Return (read_end, write_end)

\ No newline at end of file diff --git a/main/os/fs/pipe/index.html b/main/os/fs/pipe/index.html index c3360b9d..fae543f1 100644 --- a/main/os/fs/pipe/index.html +++ b/main/os/fs/pipe/index.html @@ -1,2 +1 @@ -os::fs::pipe - Rust -
\ No newline at end of file +os::fs::pipe - Rust

Module os::fs::pipe

source ·

Structs§

Enums§

Constants§

Functions§

\ No newline at end of file diff --git a/main/os/fs/pipe/struct.Pipe.html b/main/os/fs/pipe/struct.Pipe.html index 83dfcf51..f19e0714 100644 --- a/main/os/fs/pipe/struct.Pipe.html +++ b/main/os/fs/pipe/struct.Pipe.html @@ -1,29 +1,28 @@ -Pipe in os::fs::pipe - Rust -

Struct os::fs::pipe::Pipe

source ·
pub struct Pipe {
+Pipe in os::fs::pipe - Rust

Struct os::fs::pipe::Pipe

source ·
pub struct Pipe {
     readable: bool,
     writable: bool,
     buffer: Arc<UPIntrFreeCell<PipeRingBuffer>>,
 }

Fields§

§readable: bool§writable: bool§buffer: Arc<UPIntrFreeCell<PipeRingBuffer>>

Implementations§

Trait Implementations§

source§

impl File for Pipe

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl !RefUnwindSafe for Pipe

§

impl Send for Pipe

§

impl Sync for Pipe

§

impl Unpin for Pipe

§

impl !UnwindSafe for Pipe

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Self

Trait Implementations§

source§

impl File for Pipe

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl Freeze for Pipe

§

impl !RefUnwindSafe for Pipe

§

impl Send for Pipe

§

impl Sync for Pipe

§

impl Unpin for Pipe

§

impl !UnwindSafe for Pipe

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/pipe/struct.PipeRingBuffer.html b/main/os/fs/pipe/struct.PipeRingBuffer.html index 65589477..ea71d5b4 100644 --- a/main/os/fs/pipe/struct.PipeRingBuffer.html +++ b/main/os/fs/pipe/struct.PipeRingBuffer.html @@ -1,29 +1,28 @@ -PipeRingBuffer in os::fs::pipe - Rust -

Struct os::fs::pipe::PipeRingBuffer

source ·
pub struct PipeRingBuffer {
+PipeRingBuffer in os::fs::pipe - Rust

Struct os::fs::pipe::PipeRingBuffer

source ·
pub struct PipeRingBuffer {
     arr: [u8; 32],
     head: usize,
     tail: usize,
     status: RingBufferStatus,
     write_end: Option<Weak<Pipe>>,
-}

Fields§

§arr: [u8; 32]§head: usize§tail: usize§status: RingBufferStatus§write_end: Option<Weak<Pipe>>

Implementations§

source§

impl PipeRingBuffer

source

pub fn new() -> Self

source

pub fn set_write_end(&mut self, write_end: &Arc<Pipe>)

source

pub fn write_byte(&mut self, byte: u8)

source

pub fn read_byte(&mut self) -> u8

source

pub fn available_read(&self) -> usize

source

pub fn available_write(&self) -> usize

source

pub fn all_write_ends_closed(&self) -> bool

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§arr: [u8; 32]§head: usize§tail: usize§status: RingBufferStatus§write_end: Option<Weak<Pipe>>

Implementations§

source§

impl PipeRingBuffer

source

pub fn new() -> Self

source

pub fn set_write_end(&mut self, write_end: &Arc<Pipe>)

source

pub fn write_byte(&mut self, byte: u8)

source

pub fn read_byte(&mut self) -> u8

source

pub fn available_read(&self) -> usize

source

pub fn available_write(&self) -> usize

source

pub fn all_write_ends_closed(&self) -> bool

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/stdio/index.html b/main/os/fs/stdio/index.html index 0c86263e..cc2cdf7b 100644 --- a/main/os/fs/stdio/index.html +++ b/main/os/fs/stdio/index.html @@ -1,2 +1 @@ -os::fs::stdio - Rust -
\ No newline at end of file +os::fs::stdio - Rust

Module os::fs::stdio

source ·

Structs§

\ No newline at end of file diff --git a/main/os/fs/stdio/struct.Stdin.html b/main/os/fs/stdio/struct.Stdin.html index 5988d388..e15cc82d 100644 --- a/main/os/fs/stdio/struct.Stdin.html +++ b/main/os/fs/stdio/struct.Stdin.html @@ -1,23 +1,22 @@ -Stdin in os::fs::stdio - Rust -

Struct os::fs::stdio::Stdin

source ·
pub struct Stdin;

Trait Implementations§

source§

impl File for Stdin

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, user_buf: UserBuffer) -> usize

source§

fn write(&self, _user_buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl RefUnwindSafe for Stdin

§

impl Send for Stdin

§

impl Sync for Stdin

§

impl Unpin for Stdin

§

impl UnwindSafe for Stdin

Blanket Implementations§

source§

impl<T> Any for T
where +Stdin in os::fs::stdio - Rust

Struct os::fs::stdio::Stdin

source ·
pub struct Stdin;

Trait Implementations§

source§

impl File for Stdin

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, user_buf: UserBuffer) -> usize

source§

fn write(&self, _user_buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl Freeze for Stdin

§

impl RefUnwindSafe for Stdin

§

impl Send for Stdin

§

impl Sync for Stdin

§

impl Unpin for Stdin

§

impl UnwindSafe for Stdin

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/stdio/struct.Stdout.html b/main/os/fs/stdio/struct.Stdout.html index 14453ac6..c82afe58 100644 --- a/main/os/fs/stdio/struct.Stdout.html +++ b/main/os/fs/stdio/struct.Stdout.html @@ -1,23 +1,22 @@ -Stdout in os::fs::stdio - Rust -

Struct os::fs::stdio::Stdout

source ·
pub struct Stdout;

Trait Implementations§

source§

impl File for Stdout

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, _user_buf: UserBuffer) -> usize

source§

fn write(&self, user_buf: UserBuffer) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +Stdout in os::fs::stdio - Rust

Struct os::fs::stdio::Stdout

source ·
pub struct Stdout;

Trait Implementations§

source§

impl File for Stdout

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, _user_buf: UserBuffer) -> usize

source§

fn write(&self, user_buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl Freeze for Stdout

§

impl RefUnwindSafe for Stdout

§

impl Send for Stdout

§

impl Sync for Stdout

§

impl Unpin for Stdout

§

impl UnwindSafe for Stdout

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/fs/trait.File.html b/main/os/fs/trait.File.html index 89c97c7a..d92d976b 100644 --- a/main/os/fs/trait.File.html +++ b/main/os/fs/trait.File.html @@ -1,5 +1,4 @@ -File in os::fs - Rust -

Trait os::fs::File

source ·
pub trait File: Send + Sync {
+File in os::fs - Rust

Trait os::fs::File

source ·
pub trait File: Send + Sync {
     // Required methods
     fn readable(&self) -> bool;
     fn writable(&self) -> bool;
diff --git a/main/os/index.html b/main/os/index.html
index b08e6956..16f9beae 100644
--- a/main/os/index.html
+++ b/main/os/index.html
@@ -1,3 +1 @@
-os - Rust
-    

Crate os

source ·

Modules

Macros

Structs

Functions

\ No newline at end of file +os - Rust

Crate os

source ·

Modules§

Macros§

Structs§

Functions§

\ No newline at end of file diff --git a/main/os/lang_items/fn.backtrace.html b/main/os/lang_items/fn.backtrace.html index 2798400a..20e85ab8 100644 --- a/main/os/lang_items/fn.backtrace.html +++ b/main/os/lang_items/fn.backtrace.html @@ -1,2 +1 @@ -backtrace in os::lang_items - Rust -

Function os::lang_items::backtrace

source ·
unsafe fn backtrace()
\ No newline at end of file +backtrace in os::lang_items - Rust

Function os::lang_items::backtrace

source ·
unsafe fn backtrace()
\ No newline at end of file diff --git a/main/os/lang_items/fn.panic.html b/main/os/lang_items/fn.panic.html index 1ce7efee..dd47aa0d 100644 --- a/main/os/lang_items/fn.panic.html +++ b/main/os/lang_items/fn.panic.html @@ -1,2 +1 @@ -panic in os::lang_items - Rust -

Function os::lang_items::panic

source ·
fn panic(info: &PanicInfo<'_>) -> !
\ No newline at end of file +panic in os::lang_items - Rust

Function os::lang_items::panic

source ·
fn panic(info: &PanicInfo<'_>) -> !
\ No newline at end of file diff --git a/main/os/lang_items/index.html b/main/os/lang_items/index.html index 177be48a..de4be41b 100644 --- a/main/os/lang_items/index.html +++ b/main/os/lang_items/index.html @@ -1,2 +1 @@ -os::lang_items - Rust -

Module os::lang_items

source ·

Functions

\ No newline at end of file +os::lang_items - Rust

Module os::lang_items

source ·

Functions§

\ No newline at end of file diff --git a/main/os/macro.print.html b/main/os/macro.print.html index 212aefcf..36e3e793 100644 --- a/main/os/macro.print.html +++ b/main/os/macro.print.html @@ -1,4 +1,3 @@ -print in os - Rust -

Macro os::print

source ·
macro_rules! print {
+print in os - Rust

Macro os::print

source ·
macro_rules! print {
     ($fmt: literal $(, $($arg: tt)+)?) => { ... };
 }
\ No newline at end of file diff --git a/main/os/macro.println.html b/main/os/macro.println.html index 59cf1672..b12174ef 100644 --- a/main/os/macro.println.html +++ b/main/os/macro.println.html @@ -1,4 +1,3 @@ -println in os - Rust -

Macro os::println

source ·
macro_rules! println {
+println in os - Rust

Macro os::println

source ·
macro_rules! println {
     ($fmt: literal $(, $($arg: tt)+)?) => { ... };
 }
\ No newline at end of file diff --git a/main/os/mm/address/constant.PA_WIDTH_SV39.html b/main/os/mm/address/constant.PA_WIDTH_SV39.html index 8a2c8bf9..e5cba1fd 100644 --- a/main/os/mm/address/constant.PA_WIDTH_SV39.html +++ b/main/os/mm/address/constant.PA_WIDTH_SV39.html @@ -1,2 +1 @@ -PA_WIDTH_SV39 in os::mm::address - Rust -

Constant os::mm::address::PA_WIDTH_SV39

source ·
const PA_WIDTH_SV39: usize = 56;
\ No newline at end of file +PA_WIDTH_SV39 in os::mm::address - Rust

Constant os::mm::address::PA_WIDTH_SV39

source ·
const PA_WIDTH_SV39: usize = 56;
\ No newline at end of file diff --git a/main/os/mm/address/constant.PPN_WIDTH_SV39.html b/main/os/mm/address/constant.PPN_WIDTH_SV39.html index 93b0790a..084e0983 100644 --- a/main/os/mm/address/constant.PPN_WIDTH_SV39.html +++ b/main/os/mm/address/constant.PPN_WIDTH_SV39.html @@ -1,2 +1 @@ -PPN_WIDTH_SV39 in os::mm::address - Rust -

Constant os::mm::address::PPN_WIDTH_SV39

source ·
const PPN_WIDTH_SV39: usize = _; // 44usize
\ No newline at end of file +PPN_WIDTH_SV39 in os::mm::address - Rust

Constant os::mm::address::PPN_WIDTH_SV39

source ·
const PPN_WIDTH_SV39: usize = _; // 44usize
\ No newline at end of file diff --git a/main/os/mm/address/constant.VA_WIDTH_SV39.html b/main/os/mm/address/constant.VA_WIDTH_SV39.html index ce0bd0ba..76207082 100644 --- a/main/os/mm/address/constant.VA_WIDTH_SV39.html +++ b/main/os/mm/address/constant.VA_WIDTH_SV39.html @@ -1,2 +1 @@ -VA_WIDTH_SV39 in os::mm::address - Rust -

Constant os::mm::address::VA_WIDTH_SV39

source ·
const VA_WIDTH_SV39: usize = 39;
\ No newline at end of file +VA_WIDTH_SV39 in os::mm::address - Rust

Constant os::mm::address::VA_WIDTH_SV39

source ·
const VA_WIDTH_SV39: usize = 39;
\ No newline at end of file diff --git a/main/os/mm/address/constant.VPN_WIDTH_SV39.html b/main/os/mm/address/constant.VPN_WIDTH_SV39.html index 26803d19..45feec33 100644 --- a/main/os/mm/address/constant.VPN_WIDTH_SV39.html +++ b/main/os/mm/address/constant.VPN_WIDTH_SV39.html @@ -1,2 +1 @@ -VPN_WIDTH_SV39 in os::mm::address - Rust -

Constant os::mm::address::VPN_WIDTH_SV39

source ·
const VPN_WIDTH_SV39: usize = _; // 27usize
\ No newline at end of file +VPN_WIDTH_SV39 in os::mm::address - Rust

Constant os::mm::address::VPN_WIDTH_SV39

source ·
const VPN_WIDTH_SV39: usize = _; // 27usize
\ No newline at end of file diff --git a/main/os/mm/address/index.html b/main/os/mm/address/index.html index 78e31d5a..9ddfcb9d 100644 --- a/main/os/mm/address/index.html +++ b/main/os/mm/address/index.html @@ -1,2 +1 @@ -os::mm::address - Rust -
\ No newline at end of file +os::mm::address - Rust
\ No newline at end of file diff --git a/main/os/mm/address/struct.PhysAddr.html b/main/os/mm/address/struct.PhysAddr.html index 81b31762..de5aee61 100644 --- a/main/os/mm/address/struct.PhysAddr.html +++ b/main/os/mm/address/struct.PhysAddr.html @@ -1,25 +1,24 @@ -PhysAddr in os::mm::address - Rust -

Struct os::mm::address::PhysAddr

source ·
#[repr(C)]
pub struct PhysAddr(pub usize);
Expand description

Definitions

-

Tuple Fields§

§0: usize

Implementations§

source§

impl PhysAddr

source

pub fn floor(&self) -> PhysPageNum

source

pub fn ceil(&self) -> PhysPageNum

source

pub fn page_offset(&self) -> usize

source

pub fn aligned(&self) -> bool

source§

impl PhysAddr

source

pub fn get_ref<T>(&self) -> &'static T

source

pub fn get_mut<T>(&self) -> &'static mut T

Trait Implementations§

source§

impl Clone for PhysAddr

source§

fn clone(&self) -> PhysAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PhysAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PhysAddr> for PhysPageNum

source§

fn from(v: PhysAddr) -> Self

Converts to this type from the input type.
source§

impl From<PhysAddr> for usize

source§

fn from(v: PhysAddr) -> Self

Converts to this type from the input type.
source§

impl From<PhysPageNum> for PhysAddr

source§

fn from(v: PhysPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for PhysAddr

T: {PhysAddr, VirtAddr, PhysPageNum, VirtPageNum} +PhysAddr in os::mm::address - Rust

Struct os::mm::address::PhysAddr

source ·
#[repr(C)]
pub struct PhysAddr(pub usize);
Expand description

Definitions

+

Tuple Fields§

§0: usize

Implementations§

source§

impl PhysAddr

source

pub fn floor(&self) -> PhysPageNum

source

pub fn ceil(&self) -> PhysPageNum

source

pub fn page_offset(&self) -> usize

source

pub fn aligned(&self) -> bool

source§

impl PhysAddr

source

pub fn get_ref<T>(&self) -> &'static T

source

pub fn get_mut<T>(&self) -> &'static mut T

Trait Implementations§

source§

impl Clone for PhysAddr

source§

fn clone(&self) -> PhysAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PhysAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PhysAddr> for PhysPageNum

source§

fn from(v: PhysAddr) -> Self

Converts to this type from the input type.
source§

impl From<PhysAddr> for usize

source§

fn from(v: PhysAddr) -> Self

Converts to this type from the input type.
source§

impl From<PhysPageNum> for PhysAddr

source§

fn from(v: PhysPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for PhysAddr

T: {PhysAddr, VirtAddr, PhysPageNum, VirtPageNum} T -> usize: T.0 usize -> T: usize.into()

-
source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

impl Ord for PhysAddr

source§

fn cmp(&self, other: &PhysAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where +
source§

fn from(v: usize) -> Self

Converts to this type from the input type.

source§

impl Ord for PhysAddr

source§

fn cmp(&self, other: &PhysAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for PhysAddr

source§

fn eq(&self, other: &PhysAddr) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for PhysAddr

source§

fn partial_cmp(&self, other: &PhysAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Copy for PhysAddr

source§

impl Eq for PhysAddr

source§

impl StructuralEq for PhysAddr

source§

impl StructuralPartialEq for PhysAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for PhysAddr

source§

fn partial_cmp(&self, other: &PhysAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Copy for PhysAddr

source§

impl Eq for PhysAddr

source§

impl StructuralPartialEq for PhysAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -27,9 +26,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/address/struct.PhysPageNum.html b/main/os/mm/address/struct.PhysPageNum.html index 87645b9a..3b11b013 100644 --- a/main/os/mm/address/struct.PhysPageNum.html +++ b/main/os/mm/address/struct.PhysPageNum.html @@ -1,21 +1,20 @@ -PhysPageNum in os::mm::address - Rust -

Struct os::mm::address::PhysPageNum

source ·
#[repr(C)]
pub struct PhysPageNum(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl PhysPageNum

source

pub fn get_pte_array(&self) -> &'static mut [PageTableEntry]

source

pub fn get_bytes_array(&self) -> &'static mut [u8]

source

pub fn get_mut<T>(&self) -> &'static mut T

Trait Implementations§

source§

impl Clone for PhysPageNum

source§

fn clone(&self) -> PhysPageNum

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PhysPageNum

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PhysAddr> for PhysPageNum

source§

fn from(v: PhysAddr) -> Self

Converts to this type from the input type.
source§

impl From<PhysPageNum> for PhysAddr

source§

fn from(v: PhysPageNum) -> Self

Converts to this type from the input type.
source§

impl From<PhysPageNum> for usize

source§

fn from(v: PhysPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for PhysPageNum

source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

impl Ord for PhysPageNum

source§

fn cmp(&self, other: &PhysPageNum) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where +PhysPageNum in os::mm::address - Rust

Struct os::mm::address::PhysPageNum

source ·
#[repr(C)]
pub struct PhysPageNum(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl PhysPageNum

source

pub fn get_pte_array(&self) -> &'static mut [PageTableEntry]

source

pub fn get_bytes_array(&self) -> &'static mut [u8]

source

pub fn get_mut<T>(&self) -> &'static mut T

Trait Implementations§

source§

impl Clone for PhysPageNum

source§

fn clone(&self) -> PhysPageNum

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PhysPageNum

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PhysAddr> for PhysPageNum

source§

fn from(v: PhysAddr) -> Self

Converts to this type from the input type.
source§

impl From<PhysPageNum> for PhysAddr

source§

fn from(v: PhysPageNum) -> Self

Converts to this type from the input type.
source§

impl From<PhysPageNum> for usize

source§

fn from(v: PhysPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for PhysPageNum

source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

impl Ord for PhysPageNum

source§

fn cmp(&self, other: &PhysPageNum) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for PhysPageNum

source§

fn eq(&self, other: &PhysPageNum) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for PhysPageNum

source§

fn partial_cmp(&self, other: &PhysPageNum) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl StepByOne for PhysPageNum

source§

fn step(&mut self)

source§

impl Copy for PhysPageNum

source§

impl Eq for PhysPageNum

source§

impl StructuralEq for PhysPageNum

source§

impl StructuralPartialEq for PhysPageNum

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

source§

impl PartialOrd for PhysPageNum

source§

fn partial_cmp(&self, other: &PhysPageNum) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl StepByOne for PhysPageNum

source§

fn step(&mut self)

source§

impl Copy for PhysPageNum

source§

impl Eq for PhysPageNum

source§

impl StructuralPartialEq for PhysPageNum

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -23,9 +22,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/address/struct.SimpleRange.html b/main/os/mm/address/struct.SimpleRange.html index a78327f0..0b0ae7ad 100644 --- a/main/os/mm/address/struct.SimpleRange.html +++ b/main/os/mm/address/struct.SimpleRange.html @@ -1,5 +1,4 @@ -SimpleRange in os::mm::address - Rust -

Struct os::mm::address::SimpleRange

source ·
pub struct SimpleRange<T>
where +SimpleRange in os::mm::address - Rust

Struct os::mm::address::SimpleRange

source ·
pub struct SimpleRange<T>{
     l: T,
     r: T,
@@ -7,7 +6,8 @@
     T: StepByOne + Copy + PartialEq + PartialOrd + Debug,

source

pub fn new(start: T, end: T) -> Self

source

pub fn get_start(&self) -> T

source

pub fn get_end(&self) -> T

Trait Implementations§

source§

impl<T> Clone for SimpleRange<T>

source§

fn clone(&self) -> SimpleRange<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> IntoIterator for SimpleRange<T>

§

type Item = T

The type of the elements being iterated over.
§

type IntoIter = SimpleRangeIterator<T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<T> Copy for SimpleRange<T>

Auto Trait Implementations§

Auto Trait Implementations§

§

impl<T> Freeze for SimpleRange<T>
where + T: Freeze,

§

impl<T> RefUnwindSafe for SimpleRange<T>
where T: RefUnwindSafe,

§

impl<T> Send for SimpleRange<T>
where T: Send,

§

impl<T> Sync for SimpleRange<T>
where T: Sync,

§

impl<T> Unpin for SimpleRange<T>
where @@ -19,9 +19,9 @@ T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -29,9 +29,9 @@ Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/address/struct.SimpleRangeIterator.html b/main/os/mm/address/struct.SimpleRangeIterator.html index ad2d1d42..a5bb647e 100644 --- a/main/os/mm/address/struct.SimpleRangeIterator.html +++ b/main/os/mm/address/struct.SimpleRangeIterator.html @@ -1,87 +1,86 @@ -SimpleRangeIterator in os::mm::address - Rust -
pub struct SimpleRangeIterator<T>
where +SimpleRangeIterator in os::mm::address - Rust

Struct os::mm::address::SimpleRangeIterator

source ·
pub struct SimpleRangeIterator<T>{
     current: T,
     end: T,
 }

Fields§

§current: T§end: T

Implementations§

source§

impl<T> SimpleRangeIterator<T>

source

pub fn new(l: T, r: T) -> Self

Trait Implementations§

source§

impl<T> Iterator for SimpleRangeIterator<T>

§

type Item = T

The type of the elements being iterated over.
source§

fn next(&mut self) -> Option<Self::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( + T: StepByOne + Copy + PartialEq + PartialOrd + Debug,

§

type Item = T

The type of the elements being iterated over.
source§

fn next(&mut self) -> Option<Self::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( &mut self ) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
where - Self: Sized,

🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · source§

fn count(self) -> usize
where - Self: Sized,

Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · source§

fn last(self) -> Option<Self::Item>
where - Self: Sized,

Consumes the iterator, returning the last element. Read more
source§

fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>

🔬This is a nightly-only experimental API. (iter_advance_by)
Advances the iterator by n elements. Read more
1.0.0 · source§

fn nth(&mut self, n: usize) -> Option<Self::Item>

Returns the nth element of the iterator. Read more
1.28.0 · source§

fn step_by(self, step: usize) -> StepBy<Self>
where + Self: Sized,

🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · source§

fn count(self) -> usize
where + Self: Sized,

Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · source§

fn last(self) -> Option<Self::Item>
where + Self: Sized,

Consumes the iterator, returning the last element. Read more
source§

fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

🔬This is a nightly-only experimental API. (iter_advance_by)
Advances the iterator by n elements. Read more
1.0.0 · source§

fn nth(&mut self, n: usize) -> Option<Self::Item>

Returns the nth element of the iterator. Read more
1.28.0 · source§

fn step_by(self, step: usize) -> StepBy<Self>
where Self: Sized,

Creates an iterator starting at the same point, but stepping by -the given amount at each iteration. Read more
1.0.0 · source§

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
where +the given amount at each iteration. Read more

1.0.0 · source§

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, - U: IntoIterator<Item = Self::Item>,

Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · source§

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
where + U: IntoIterator<Item = Self::Item>,

Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · source§

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, - U: IntoIterator,

‘Zips up’ two iterators into a single iterator of pairs. Read more
source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
where + U: IntoIterator,

‘Zips up’ two iterators into a single iterator of pairs. Read more
source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
where Self: Sized, G: FnMut() -> Self::Item,

🔬This is a nightly-only experimental API. (iter_intersperse)
Creates a new iterator which places an item generated by separator -between adjacent items of the original iterator. Read more
1.0.0 · source§

fn map<B, F>(self, f: F) -> Map<Self, F>
where +between adjacent items of the original iterator. Read more

1.0.0 · source§

fn map<B, F>(self, f: F) -> Map<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> B,

Takes a closure and creates an iterator which calls that closure on each -element. Read more
1.21.0 · source§

fn for_each<F>(self, f: F)
where +element. Read more

1.21.0 · source§

fn for_each<F>(self, f: F)
where Self: Sized, - F: FnMut(Self::Item),

Calls a closure on each element of an iterator. Read more
1.0.0 · source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where + F: FnMut(Self::Item),

Calls a closure on each element of an iterator. Read more
1.0.0 · source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates an iterator which uses a closure to determine if an element -should be yielded. Read more
1.0.0 · source§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
where +should be yielded. Read more

1.0.0 · source§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
where Self: Sized, - F: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both filters and maps. Read more
1.0.0 · source§

fn enumerate(self) -> Enumerate<Self>
where + F: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both filters and maps. Read more
1.0.0 · source§

fn enumerate(self) -> Enumerate<Self>
where Self: Sized,

Creates an iterator which gives the current iteration count as well as -the next value. Read more
1.0.0 · source§

fn peekable(self) -> Peekable<Self>
where +the next value. Read more

1.0.0 · source§

fn peekable(self) -> Peekable<Self>
where Self: Sized,

Creates an iterator which can use the peek and peek_mut methods to look at the next element of the iterator without consuming it. See -their documentation for more information. Read more
1.0.0 · source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where +their documentation for more information. Read more

1.0.0 · source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where Self: Sized, - P: FnMut(&Self::Item) -> bool,

Creates an iterator that skips elements based on a predicate. Read more
1.0.0 · source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where + P: FnMut(&Self::Item) -> bool,

Creates an iterator that skips elements based on a predicate. Read more
1.0.0 · source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where Self: Sized, - P: FnMut(&Self::Item) -> bool,

Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · source§

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
where + P: FnMut(&Self::Item) -> bool,

Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · source§

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
where Self: Sized, - P: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · source§

fn skip(self, n: usize) -> Skip<Self>
where - Self: Sized,

Creates an iterator that skips the first n elements. Read more
1.0.0 · source§

fn take(self, n: usize) -> Take<Self>
where + P: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · source§

fn skip(self, n: usize) -> Skip<Self>
where + Self: Sized,

Creates an iterator that skips the first n elements. Read more
1.0.0 · source§

fn take(self, n: usize) -> Take<Self>
where Self: Sized,

Creates an iterator that yields the first n elements, or fewer -if the underlying iterator ends sooner. Read more
1.0.0 · source§

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
where +if the underlying iterator ends sooner. Read more

1.0.0 · source§

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
where Self: Sized, F: FnMut(&mut St, Self::Item) -> Option<B>,

An iterator adapter which, like fold, holds internal state, but -unlike fold, produces a new iterator. Read more
1.0.0 · source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
where +unlike fold, produces a new iterator. Read more

1.0.0 · source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
where Self: Sized, U: IntoIterator, - F: FnMut(Self::Item) -> U,

Creates an iterator that works like map, but flattens nested structure. Read more
source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where + F: FnMut(Self::Item) -> U,

Creates an iterator that works like map, but flattens nested structure. Read more
source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where Self: Sized, F: FnMut(&[Self::Item; N]) -> R,

🔬This is a nightly-only experimental API. (iter_map_windows)
Calls the given function f for each contiguous window of size N over self and returns an iterator over the outputs of f. Like slice::windows(), -the windows during mapping overlap as well. Read more
1.0.0 · source§

fn fuse(self) -> Fuse<Self>
where - Self: Sized,

Creates an iterator which ends after the first None. Read more
1.0.0 · source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where +the windows during mapping overlap as well. Read more

1.0.0 · source§

fn fuse(self) -> Fuse<Self>
where + Self: Sized,

Creates an iterator which ends after the first None. Read more
1.0.0 · source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where Self: Sized, - F: FnMut(&Self::Item),

Does something with each element of an iterator, passing the value on. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where - Self: Sized,

Borrows an iterator, rather than consuming it. Read more
1.0.0 · source§

fn collect<B>(self) -> B
where + F: FnMut(&Self::Item),

Does something with each element of an iterator, passing the value on. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where + Self: Sized,

Borrows an iterator, rather than consuming it. Read more
1.0.0 · source§

fn collect<B>(self) -> B
where B: FromIterator<Self::Item>, - Self: Sized,

Transforms an iterator into a collection. Read more
source§

fn collect_into<E>(self, collection: &mut E) -> &mut E
where + Self: Sized,

Transforms an iterator into a collection. Read more
source§

fn collect_into<E>(self, collection: &mut E) -> &mut E
where E: Extend<Self::Item>, - Self: Sized,

🔬This is a nightly-only experimental API. (iter_collect_into)
Collects all the items from an iterator into a collection. Read more
1.0.0 · source§

fn partition<B, F>(self, f: F) -> (B, B)
where + Self: Sized,

🔬This is a nightly-only experimental API. (iter_collect_into)
Collects all the items from an iterator into a collection. Read more
1.0.0 · source§

fn partition<B, F>(self, f: F) -> (B, B)
where Self: Sized, B: Default + Extend<Self::Item>, - F: FnMut(&Self::Item) -> bool,

Consumes an iterator, creating two collections from it. Read more
source§

fn is_partitioned<P>(self, predicate: P) -> bool
where + F: FnMut(&Self::Item) -> bool,

Consumes an iterator, creating two collections from it. Read more
source§

fn is_partitioned<P>(self, predicate: P) -> bool
where Self: Sized, P: FnMut(Self::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate, -such that all those that return true precede all those that return false. Read more
1.27.0 · source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
where +such that all those that return true precede all those that return false. Read more

1.27.0 · source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
where Self: Sized, F: FnMut(B, Self::Item) -> R, R: Try<Output = B>,

An iterator method that applies a function as long as it returns -successfully, producing a single, final value. Read more
1.27.0 · source§

fn try_for_each<F, R>(&mut self, f: F) -> R
where +successfully, producing a single, final value. Read more

1.27.0 · source§

fn try_for_each<F, R>(&mut self, f: F) -> R
where Self: Sized, F: FnMut(Self::Item) -> R, R: Try<Output = ()>,

An iterator method that applies a fallible function to each item in the -iterator, stopping at the first error and returning that error. Read more
1.0.0 · source§

fn fold<B, F>(self, init: B, f: F) -> B
where +iterator, stopping at the first error and returning that error. Read more

1.0.0 · source§

fn fold<B, F>(self, init: B, f: F) -> B
where Self: Sized, F: FnMut(B, Self::Item) -> B,

Folds every element into an accumulator by applying an operation, -returning the final result. Read more
1.51.0 · source§

fn reduce<F>(self, f: F) -> Option<Self::Item>
where +returning the final result. Read more

1.51.0 · source§

fn reduce<F>(self, f: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(Self::Item, Self::Item) -> Self::Item,

Reduces the elements to a single one, by repeatedly applying a reducing -operation. Read more
source§

fn try_reduce<F, R>( +operation. Read more

source§

fn try_reduce<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
where @@ -89,16 +88,16 @@ operation. FnMut(Self::Item, Self::Item) -> R, R: Try<Output = Self::Item>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the -closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 · source§

fn all<F>(&mut self, f: F) -> bool
where +closure returns a failure, the failure is propagated back to the caller immediately. Read more

1.0.0 · source§

fn all<F>(&mut self, f: F) -> bool
where Self: Sized, - F: FnMut(Self::Item) -> bool,

Tests if every element of the iterator matches a predicate. Read more
1.0.0 · source§

fn any<F>(&mut self, f: F) -> bool
where + F: FnMut(Self::Item) -> bool,

Tests if every element of the iterator matches a predicate. Read more
1.0.0 · source§

fn any<F>(&mut self, f: F) -> bool
where Self: Sized, - F: FnMut(Self::Item) -> bool,

Tests if any element of the iterator matches a predicate. Read more
1.0.0 · source§

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where + F: FnMut(Self::Item) -> bool,

Tests if any element of the iterator matches a predicate. Read more
1.0.0 · source§

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where Self: Sized, - P: FnMut(&Self::Item) -> bool,

Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · source§

fn find_map<B, F>(&mut self, f: F) -> Option<B>
where + P: FnMut(&Self::Item) -> bool,

Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · source§

fn find_map<B, F>(&mut self, f: F) -> Option<B>
where Self: Sized, F: FnMut(Self::Item) -> Option<B>,

Applies function to the elements of iterator and returns -the first non-none result. Read more
source§

fn try_find<F, R>( +the first non-none result. Read more

source§

fn try_find<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
where @@ -106,83 +105,84 @@ the first non-none result. FnMut(&Self::Item) -> R, R: Try<Output = bool>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (try_find)
Applies function to the elements of iterator and returns -the first true result or the first error. Read more
1.0.0 · source§

fn position<P>(&mut self, predicate: P) -> Option<usize>
where +the first true result or the first error. Read more

1.0.0 · source§

fn position<P>(&mut self, predicate: P) -> Option<usize>
where Self: Sized, - P: FnMut(Self::Item) -> bool,

Searches for an element in an iterator, returning its index. Read more
1.6.0 · source§

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
where + P: FnMut(Self::Item) -> bool,

Searches for an element in an iterator, returning its index. Read more
1.6.0 · source§

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Returns the element that gives the maximum value from the -specified function. Read more
1.15.0 · source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>
where +specified function. Read more

1.15.0 · source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the maximum value with respect to the -specified comparison function. Read more
1.6.0 · source§

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where +specified comparison function. Read more

1.6.0 · source§

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Returns the element that gives the minimum value from the -specified function. Read more
1.15.0 · source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>
where +specified function. Read more

1.15.0 · source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the minimum value with respect to the -specified comparison function. Read more
1.0.0 · source§

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
where +specified comparison function. Read more

1.0.0 · source§

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
where FromA: Default + Extend<A>, FromB: Default + Extend<B>, - Self: Sized + Iterator<Item = (A, B)>,

Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · source§

fn copied<'a, T>(self) -> Copied<Self>
where + Self: Sized + Iterator<Item = (A, B)>,

Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · source§

fn copied<'a, T>(self) -> Copied<Self>
where T: 'a + Copy, - Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which copies all of its elements. Read more
1.0.0 · source§

fn cloned<'a, T>(self) -> Cloned<Self>
where + Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which copies all of its elements. Read more
1.0.0 · source§

fn cloned<'a, T>(self) -> Cloned<Self>
where T: 'a + Clone, - Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which clones all of its elements. Read more
source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
where - Self: Sized,

🔬This is a nightly-only experimental API. (iter_array_chunks)
Returns an iterator over N elements of the iterator at a time. Read more
1.11.0 · source§

fn sum<S>(self) -> S
where + Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which clones all of its elements. Read more
source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
where + Self: Sized,

🔬This is a nightly-only experimental API. (iter_array_chunks)
Returns an iterator over N elements of the iterator at a time. Read more
1.11.0 · source§

fn sum<S>(self) -> S
where Self: Sized, - S: Sum<Self::Item>,

Sums the elements of an iterator. Read more
1.11.0 · source§

fn product<P>(self) -> P
where + S: Sum<Self::Item>,

Sums the elements of an iterator. Read more
1.11.0 · source§

fn product<P>(self) -> P
where Self: Sized, - P: Product<Self::Item>,

Iterates over the entire iterator, multiplying all the elements Read more
source§

fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
where + P: Product<Self::Item>,

Iterates over the entire iterator, multiplying all the elements Read more
source§

fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those -of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn partial_cmp<I>(self, other: I) -> Option<Ordering>
where +of another with respect to the specified comparison function. Read more

1.5.0 · source§

fn partial_cmp<I>(self, other: I) -> Option<Ordering>
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Lexicographically compares the PartialOrd elements of this Iterator with those of another. The comparison works like short-circuit evaluation, returning a result without comparing the remaining elements. -As soon as an order can be determined, the evaluation stops and a result is returned. Read more
source§

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
where +As soon as an order can be determined, the evaluation stops and a result is returned. Read more

source§

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those -of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn eq<I>(self, other: I) -> bool
where +of another with respect to the specified comparison function. Read more

1.5.0 · source§

fn eq<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are equal to those of -another. Read more
source§

fn eq_by<I, F>(self, other: I, eq: F) -> bool
where +another. Read more

source§

fn eq_by<I, F>(self, other: I, eq: F) -> bool
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_order_by)
Determines if the elements of this Iterator are equal to those of -another with respect to the specified equality function. Read more
1.5.0 · source§

fn ne<I>(self, other: I) -> bool
where +another with respect to the specified equality function. Read more

1.5.0 · source§

fn ne<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are not equal to those of -another. Read more
1.5.0 · source§

fn lt<I>(self, other: I) -> bool
where +another. Read more

1.5.0 · source§

fn lt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -less than those of another. Read more
1.5.0 · source§

fn le<I>(self, other: I) -> bool
where +less than those of another. Read more

1.5.0 · source§

fn le<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -less or equal to those of another. Read more
1.5.0 · source§

fn gt<I>(self, other: I) -> bool
where +less or equal to those of another. Read more

1.5.0 · source§

fn gt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -greater than those of another. Read more
1.5.0 · source§

fn ge<I>(self, other: I) -> bool
where +greater than those of another. Read more

1.5.0 · source§

fn ge<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -greater than or equal to those of another. Read more
source§

fn is_sorted_by<F>(self, compare: F) -> bool
where +greater than or equal to those of another. Read more

source§

fn is_sorted_by<F>(self, compare: F) -> bool
where Self: Sized, - F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given comparator function. Read more
source§

fn is_sorted_by_key<F, K>(self, f: F) -> bool
where + F: FnMut(&Self::Item, &Self::Item) -> bool,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given comparator function. Read more
source§

fn is_sorted_by_key<F, K>(self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> K, K: PartialOrd,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given key extraction -function. Read more

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for SimpleRangeIterator<T>
where +function. Read more

Auto Trait Implementations§

§

impl<T> Freeze for SimpleRangeIterator<T>
where + T: Freeze,

§

impl<T> RefUnwindSafe for SimpleRangeIterator<T>
where T: RefUnwindSafe,

§

impl<T> Send for SimpleRangeIterator<T>
where T: Send,

§

impl<T> Sync for SimpleRangeIterator<T>
where T: Sync,

§

impl<T> Unpin for SimpleRangeIterator<T>
where @@ -194,19 +194,19 @@ function. Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<I> IntoIterator for I
where - I: Iterator,

§

type Item = <I as Iterator>::Item

The type of the elements being iterated over.
§

type IntoIter = I

Which kind of iterator are we turning this into?
const: unstable · source§

fn into_iter(self) -> I

Creates an iterator from a value. Read more
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where +

source§

impl<I> IntoIterator for I
where + I: Iterator,

§

type Item = <I as Iterator>::Item

The type of the elements being iterated over.
§

type IntoIter = I

Which kind of iterator are we turning this into?
const: unstable · source§

fn into_iter(self) -> I

Creates an iterator from a value. Read more
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/address/struct.VirtAddr.html b/main/os/mm/address/struct.VirtAddr.html index da988a2d..6c7a79c1 100644 --- a/main/os/mm/address/struct.VirtAddr.html +++ b/main/os/mm/address/struct.VirtAddr.html @@ -1,22 +1,21 @@ -VirtAddr in os::mm::address - Rust -

Struct os::mm::address::VirtAddr

source ·
#[repr(C)]
pub struct VirtAddr(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl VirtAddr

source

pub fn floor(&self) -> VirtPageNum

source

pub fn ceil(&self) -> VirtPageNum

source

pub fn page_offset(&self) -> usize

source

pub fn aligned(&self) -> bool

Trait Implementations§

source§

impl Clone for VirtAddr

source§

fn clone(&self) -> VirtAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VirtAddr

Debugging

-
source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<VirtAddr> for VirtPageNum

source§

fn from(v: VirtAddr) -> Self

Converts to this type from the input type.
source§

impl From<VirtAddr> for usize

source§

fn from(v: VirtAddr) -> Self

Converts to this type from the input type.
source§

impl From<VirtPageNum> for VirtAddr

source§

fn from(v: VirtPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for VirtAddr

source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtAddr

source§

fn cmp(&self, other: &VirtAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where +VirtAddr in os::mm::address - Rust

Struct os::mm::address::VirtAddr

source ·
#[repr(C)]
pub struct VirtAddr(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl VirtAddr

source

pub fn floor(&self) -> VirtPageNum

source

pub fn ceil(&self) -> VirtPageNum

source

pub fn page_offset(&self) -> usize

source

pub fn aligned(&self) -> bool

Trait Implementations§

source§

impl Clone for VirtAddr

source§

fn clone(&self) -> VirtAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VirtAddr

Debugging

+
source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<VirtAddr> for VirtPageNum

source§

fn from(v: VirtAddr) -> Self

Converts to this type from the input type.
source§

impl From<VirtAddr> for usize

source§

fn from(v: VirtAddr) -> Self

Converts to this type from the input type.
source§

impl From<VirtPageNum> for VirtAddr

source§

fn from(v: VirtPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for VirtAddr

source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtAddr

source§

fn cmp(&self, other: &VirtAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for VirtAddr

source§

fn eq(&self, other: &VirtAddr) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for VirtAddr

source§

fn partial_cmp(&self, other: &VirtAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Copy for VirtAddr

source§

impl Eq for VirtAddr

source§

impl StructuralEq for VirtAddr

source§

impl StructuralPartialEq for VirtAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

source§

impl PartialOrd for VirtAddr

source§

fn partial_cmp(&self, other: &VirtAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Copy for VirtAddr

source§

impl Eq for VirtAddr

source§

impl StructuralPartialEq for VirtAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -24,9 +23,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/address/struct.VirtPageNum.html b/main/os/mm/address/struct.VirtPageNum.html index 7a3f7162..d737501c 100644 --- a/main/os/mm/address/struct.VirtPageNum.html +++ b/main/os/mm/address/struct.VirtPageNum.html @@ -1,21 +1,20 @@ -VirtPageNum in os::mm::address - Rust -

Struct os::mm::address::VirtPageNum

source ·
#[repr(C)]
pub struct VirtPageNum(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl VirtPageNum

source

pub fn indexes(&self) -> [usize; 3]

Trait Implementations§

source§

impl Clone for VirtPageNum

source§

fn clone(&self) -> VirtPageNum

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VirtPageNum

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<VirtAddr> for VirtPageNum

source§

fn from(v: VirtAddr) -> Self

Converts to this type from the input type.
source§

impl From<VirtPageNum> for VirtAddr

source§

fn from(v: VirtPageNum) -> Self

Converts to this type from the input type.
source§

impl From<VirtPageNum> for usize

source§

fn from(v: VirtPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for VirtPageNum

source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtPageNum

source§

fn cmp(&self, other: &VirtPageNum) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where +VirtPageNum in os::mm::address - Rust

Struct os::mm::address::VirtPageNum

source ·
#[repr(C)]
pub struct VirtPageNum(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl VirtPageNum

source

pub fn indexes(&self) -> [usize; 3]

Trait Implementations§

source§

impl Clone for VirtPageNum

source§

fn clone(&self) -> VirtPageNum

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VirtPageNum

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<VirtAddr> for VirtPageNum

source§

fn from(v: VirtAddr) -> Self

Converts to this type from the input type.
source§

impl From<VirtPageNum> for VirtAddr

source§

fn from(v: VirtPageNum) -> Self

Converts to this type from the input type.
source§

impl From<VirtPageNum> for usize

source§

fn from(v: VirtPageNum) -> Self

Converts to this type from the input type.
source§

impl From<usize> for VirtPageNum

source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtPageNum

source§

fn cmp(&self, other: &VirtPageNum) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for VirtPageNum

source§

fn eq(&self, other: &VirtPageNum) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for VirtPageNum

source§

fn partial_cmp(&self, other: &VirtPageNum) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl StepByOne for VirtPageNum

source§

fn step(&mut self)

source§

impl Copy for VirtPageNum

source§

impl Eq for VirtPageNum

source§

impl StructuralEq for VirtPageNum

source§

impl StructuralPartialEq for VirtPageNum

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

source§

impl PartialOrd for VirtPageNum

source§

fn partial_cmp(&self, other: &VirtPageNum) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl StepByOne for VirtPageNum

source§

fn step(&mut self)

source§

impl Copy for VirtPageNum

source§

impl Eq for VirtPageNum

source§

impl StructuralPartialEq for VirtPageNum

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -23,9 +22,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/address/trait.StepByOne.html b/main/os/mm/address/trait.StepByOne.html index 16988b30..b580cc47 100644 --- a/main/os/mm/address/trait.StepByOne.html +++ b/main/os/mm/address/trait.StepByOne.html @@ -1,5 +1,4 @@ -StepByOne in os::mm::address - Rust -

Trait os::mm::address::StepByOne

source ·
pub trait StepByOne {
+StepByOne in os::mm::address - Rust

Trait os::mm::address::StepByOne

source ·
pub trait StepByOne {
     // Required method
     fn step(&mut self);
 }

Required Methods§

source

fn step(&mut self)

Implementors§

\ No newline at end of file diff --git a/main/os/mm/address/type.VPNRange.html b/main/os/mm/address/type.VPNRange.html index 2803ea07..c246e010 100644 --- a/main/os/mm/address/type.VPNRange.html +++ b/main/os/mm/address/type.VPNRange.html @@ -1,5 +1,4 @@ -VPNRange in os::mm::address - Rust -

Type Alias os::mm::address::VPNRange

source ·
pub type VPNRange = SimpleRange<VirtPageNum>;

Aliased Type§

struct VPNRange {
+VPNRange in os::mm::address - Rust

Type Alias os::mm::address::VPNRange

source ·
pub type VPNRange = SimpleRange<VirtPageNum>;

Aliased Type§

struct VPNRange {
     l: VirtPageNum,
     r: VirtPageNum,
 }

Fields§

§l: VirtPageNum§r: VirtPageNum
\ No newline at end of file diff --git a/main/os/mm/fn.init.html b/main/os/mm/fn.init.html index 6ad7cb31..de8f2047 100644 --- a/main/os/mm/fn.init.html +++ b/main/os/mm/fn.init.html @@ -1,2 +1 @@ -init in os::mm - Rust -

Function os::mm::init

source ·
pub fn init()
\ No newline at end of file +init in os::mm - Rust

Function os::mm::init

source ·
pub fn init()
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/fn.frame_alloc.html b/main/os/mm/frame_allocator/fn.frame_alloc.html index 0d80bc68..03693d28 100644 --- a/main/os/mm/frame_allocator/fn.frame_alloc.html +++ b/main/os/mm/frame_allocator/fn.frame_alloc.html @@ -1,2 +1 @@ -frame_alloc in os::mm::frame_allocator - Rust -

Function os::mm::frame_allocator::frame_alloc

source ·
pub fn frame_alloc() -> Option<FrameTracker>
\ No newline at end of file +frame_alloc in os::mm::frame_allocator - Rust

Function os::mm::frame_allocator::frame_alloc

source ·
pub fn frame_alloc() -> Option<FrameTracker>
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/fn.frame_alloc_more.html b/main/os/mm/frame_allocator/fn.frame_alloc_more.html index df31ad29..62e04c5c 100644 --- a/main/os/mm/frame_allocator/fn.frame_alloc_more.html +++ b/main/os/mm/frame_allocator/fn.frame_alloc_more.html @@ -1,2 +1 @@ -frame_alloc_more in os::mm::frame_allocator - Rust -
pub fn frame_alloc_more(num: usize) -> Option<Vec<FrameTracker>>
\ No newline at end of file +frame_alloc_more in os::mm::frame_allocator - Rust

Function os::mm::frame_allocator::frame_alloc_more

source ·
pub fn frame_alloc_more(num: usize) -> Option<Vec<FrameTracker>>
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/fn.frame_allocator_alloc_more_test.html b/main/os/mm/frame_allocator/fn.frame_allocator_alloc_more_test.html index 01190847..748c14c8 100644 --- a/main/os/mm/frame_allocator/fn.frame_allocator_alloc_more_test.html +++ b/main/os/mm/frame_allocator/fn.frame_allocator_alloc_more_test.html @@ -1,2 +1 @@ -frame_allocator_alloc_more_test in os::mm::frame_allocator - Rust -
pub fn frame_allocator_alloc_more_test()
\ No newline at end of file +frame_allocator_alloc_more_test in os::mm::frame_allocator - Rust

Function os::mm::frame_allocator::frame_allocator_alloc_more_test

source ·
pub fn frame_allocator_alloc_more_test()
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/fn.frame_allocator_test.html b/main/os/mm/frame_allocator/fn.frame_allocator_test.html index 74adca86..6b1cf620 100644 --- a/main/os/mm/frame_allocator/fn.frame_allocator_test.html +++ b/main/os/mm/frame_allocator/fn.frame_allocator_test.html @@ -1,2 +1 @@ -frame_allocator_test in os::mm::frame_allocator - Rust -
pub fn frame_allocator_test()
\ No newline at end of file +frame_allocator_test in os::mm::frame_allocator - Rust

Function os::mm::frame_allocator::frame_allocator_test

source ·
pub fn frame_allocator_test()
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/fn.frame_dealloc.html b/main/os/mm/frame_allocator/fn.frame_dealloc.html index c76f075d..e5e2160f 100644 --- a/main/os/mm/frame_allocator/fn.frame_dealloc.html +++ b/main/os/mm/frame_allocator/fn.frame_dealloc.html @@ -1,2 +1 @@ -frame_dealloc in os::mm::frame_allocator - Rust -
pub fn frame_dealloc(ppn: PhysPageNum)
\ No newline at end of file +frame_dealloc in os::mm::frame_allocator - Rust

Function os::mm::frame_allocator::frame_dealloc

source ·
pub fn frame_dealloc(ppn: PhysPageNum)
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/fn.init_frame_allocator.html b/main/os/mm/frame_allocator/fn.init_frame_allocator.html index 368f3205..5a464915 100644 --- a/main/os/mm/frame_allocator/fn.init_frame_allocator.html +++ b/main/os/mm/frame_allocator/fn.init_frame_allocator.html @@ -1,2 +1 @@ -init_frame_allocator in os::mm::frame_allocator - Rust -
pub fn init_frame_allocator()
\ No newline at end of file +init_frame_allocator in os::mm::frame_allocator - Rust

Function os::mm::frame_allocator::init_frame_allocator

source ·
pub fn init_frame_allocator()
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/index.html b/main/os/mm/frame_allocator/index.html index 2e6afb9e..2dafbfdd 100644 --- a/main/os/mm/frame_allocator/index.html +++ b/main/os/mm/frame_allocator/index.html @@ -1,2 +1 @@ -os::mm::frame_allocator - Rust -
\ No newline at end of file +os::mm::frame_allocator - Rust
\ No newline at end of file diff --git a/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html b/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html index f3c3a5b7..183c21be 100644 --- a/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html +++ b/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html @@ -1,27 +1,26 @@ -FRAME_ALLOCATOR in os::mm::frame_allocator - Rust -
pub struct FRAME_ALLOCATOR {
+FRAME_ALLOCATOR in os::mm::frame_allocator - Rust

Struct os::mm::frame_allocator::FRAME_ALLOCATOR

source ·
pub struct FRAME_ALLOCATOR {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<StackFrameAllocator>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for FRAME_ALLOCATOR

§

type Target = UPIntrFreeCell<StackFrameAllocator>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<StackFrameAllocator>

Dereferences the value.
source§

impl LazyStatic for FRAME_ALLOCATOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for FRAME_ALLOCATOR

§

type Target = UPIntrFreeCell<StackFrameAllocator>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<StackFrameAllocator>

Dereferences the value.
source§

impl LazyStatic for FRAME_ALLOCATOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/frame_allocator/struct.FrameTracker.html b/main/os/mm/frame_allocator/struct.FrameTracker.html index 8acce170..0bde1149 100644 --- a/main/os/mm/frame_allocator/struct.FrameTracker.html +++ b/main/os/mm/frame_allocator/struct.FrameTracker.html @@ -1,25 +1,24 @@ -FrameTracker in os::mm::frame_allocator - Rust -
pub struct FrameTracker {
+FrameTracker in os::mm::frame_allocator - Rust

Struct os::mm::frame_allocator::FrameTracker

source ·
pub struct FrameTracker {
     pub ppn: PhysPageNum,
-}

Fields§

§ppn: PhysPageNum

Implementations§

source§

impl FrameTracker

source

pub fn new(ppn: PhysPageNum) -> Self

Trait Implementations§

source§

impl Debug for FrameTracker

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for FrameTracker

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§ppn: PhysPageNum

Implementations§

source§

impl FrameTracker

source

pub fn new(ppn: PhysPageNum) -> Self

Trait Implementations§

source§

impl Debug for FrameTracker

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for FrameTracker

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/frame_allocator/struct.StackFrameAllocator.html b/main/os/mm/frame_allocator/struct.StackFrameAllocator.html index 04212eba..84b503b4 100644 --- a/main/os/mm/frame_allocator/struct.StackFrameAllocator.html +++ b/main/os/mm/frame_allocator/struct.StackFrameAllocator.html @@ -1,27 +1,26 @@ -StackFrameAllocator in os::mm::frame_allocator - Rust -
pub struct StackFrameAllocator {
+StackFrameAllocator in os::mm::frame_allocator - Rust

Struct os::mm::frame_allocator::StackFrameAllocator

source ·
pub struct StackFrameAllocator {
     current: usize,
     end: usize,
     recycled: Vec<usize>,
-}

Fields§

§current: usize§end: usize§recycled: Vec<usize>

Implementations§

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§current: usize§end: usize§recycled: Vec<usize>

Implementations§

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/frame_allocator/trait.FrameAllocator.html b/main/os/mm/frame_allocator/trait.FrameAllocator.html index 6b0c0483..d98737fd 100644 --- a/main/os/mm/frame_allocator/trait.FrameAllocator.html +++ b/main/os/mm/frame_allocator/trait.FrameAllocator.html @@ -1,5 +1,4 @@ -FrameAllocator in os::mm::frame_allocator - Rust -
trait FrameAllocator {
+FrameAllocator in os::mm::frame_allocator - Rust

Trait os::mm::frame_allocator::FrameAllocator

source ·
trait FrameAllocator {
     // Required methods
     fn new() -> Self;
     fn alloc(&mut self) -> Option<PhysPageNum>;
diff --git a/main/os/mm/frame_allocator/type.FrameAllocatorImpl.html b/main/os/mm/frame_allocator/type.FrameAllocatorImpl.html
index 784aa62c..dce541ac 100644
--- a/main/os/mm/frame_allocator/type.FrameAllocatorImpl.html
+++ b/main/os/mm/frame_allocator/type.FrameAllocatorImpl.html
@@ -1,5 +1,4 @@
-FrameAllocatorImpl in os::mm::frame_allocator - Rust
-    
type FrameAllocatorImpl = StackFrameAllocator;

Aliased Type§

struct FrameAllocatorImpl {
+FrameAllocatorImpl in os::mm::frame_allocator - Rust

Type Alias os::mm::frame_allocator::FrameAllocatorImpl

source ·
type FrameAllocatorImpl = StackFrameAllocator;

Aliased Type§

struct FrameAllocatorImpl {
     current: usize,
     end: usize,
     recycled: Vec<usize>,
diff --git a/main/os/mm/heap_allocator/fn.handle_alloc_error.html b/main/os/mm/heap_allocator/fn.handle_alloc_error.html
index 9217d594..8b6e5426 100644
--- a/main/os/mm/heap_allocator/fn.handle_alloc_error.html
+++ b/main/os/mm/heap_allocator/fn.handle_alloc_error.html
@@ -1,2 +1 @@
-handle_alloc_error in os::mm::heap_allocator - Rust
-    
pub fn handle_alloc_error(layout: Layout) -> !
\ No newline at end of file +handle_alloc_error in os::mm::heap_allocator - Rust

Function os::mm::heap_allocator::handle_alloc_error

source ·
pub fn handle_alloc_error(layout: Layout) -> !
\ No newline at end of file diff --git a/main/os/mm/heap_allocator/fn.heap_test.html b/main/os/mm/heap_allocator/fn.heap_test.html index d2a328b2..f3a66c57 100644 --- a/main/os/mm/heap_allocator/fn.heap_test.html +++ b/main/os/mm/heap_allocator/fn.heap_test.html @@ -1,2 +1 @@ -heap_test in os::mm::heap_allocator - Rust -

Function os::mm::heap_allocator::heap_test

source ·
pub fn heap_test()
\ No newline at end of file +heap_test in os::mm::heap_allocator - Rust

Function os::mm::heap_allocator::heap_test

source ·
pub fn heap_test()
\ No newline at end of file diff --git a/main/os/mm/heap_allocator/fn.init_heap.html b/main/os/mm/heap_allocator/fn.init_heap.html index 8e3a97ba..68098397 100644 --- a/main/os/mm/heap_allocator/fn.init_heap.html +++ b/main/os/mm/heap_allocator/fn.init_heap.html @@ -1,2 +1 @@ -init_heap in os::mm::heap_allocator - Rust -

Function os::mm::heap_allocator::init_heap

source ·
pub fn init_heap()
\ No newline at end of file +init_heap in os::mm::heap_allocator - Rust

Function os::mm::heap_allocator::init_heap

source ·
pub fn init_heap()
\ No newline at end of file diff --git a/main/os/mm/heap_allocator/index.html b/main/os/mm/heap_allocator/index.html index 59832992..8c1ee00e 100644 --- a/main/os/mm/heap_allocator/index.html +++ b/main/os/mm/heap_allocator/index.html @@ -1,2 +1 @@ -os::mm::heap_allocator - Rust -
\ No newline at end of file +os::mm::heap_allocator - Rust
\ No newline at end of file diff --git a/main/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html b/main/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html index 67b43ace..6b66c4fe 100644 --- a/main/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html +++ b/main/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html @@ -1,2 +1 @@ -HEAP_ALLOCATOR in os::mm::heap_allocator - Rust -
static HEAP_ALLOCATOR: LockedHeap
\ No newline at end of file +HEAP_ALLOCATOR in os::mm::heap_allocator - Rust

Static os::mm::heap_allocator::HEAP_ALLOCATOR

source ·
static HEAP_ALLOCATOR: LockedHeap
\ No newline at end of file diff --git a/main/os/mm/heap_allocator/static.HEAP_SPACE.html b/main/os/mm/heap_allocator/static.HEAP_SPACE.html index 49e18470..73d67a7b 100644 --- a/main/os/mm/heap_allocator/static.HEAP_SPACE.html +++ b/main/os/mm/heap_allocator/static.HEAP_SPACE.html @@ -1,2 +1 @@ -HEAP_SPACE in os::mm::heap_allocator - Rust -
static mut HEAP_SPACE: [u8; 16777216]
\ No newline at end of file +HEAP_SPACE in os::mm::heap_allocator - Rust

Static os::mm::heap_allocator::HEAP_SPACE

source ·
static mut HEAP_SPACE: [u8; 16777216]
\ No newline at end of file diff --git a/main/os/mm/index.html b/main/os/mm/index.html index 8c70f3a4..096d4f98 100644 --- a/main/os/mm/index.html +++ b/main/os/mm/index.html @@ -1,2 +1 @@ -os::mm - Rust -

Module os::mm

source ·

Re-exports

Modules

Functions

\ No newline at end of file +os::mm - Rust

Module os::mm

source ·

Re-exports§

Modules§

Functions§

\ No newline at end of file diff --git a/main/os/mm/memory_set/enum.MapType.html b/main/os/mm/memory_set/enum.MapType.html index b92c3120..afd412b7 100644 --- a/main/os/mm/memory_set/enum.MapType.html +++ b/main/os/mm/memory_set/enum.MapType.html @@ -1,21 +1,20 @@ -MapType in os::mm::memory_set - Rust -

Enum os::mm::memory_set::MapType

source ·
pub enum MapType {
+MapType in os::mm::memory_set - Rust

Enum os::mm::memory_set::MapType

source ·
pub enum MapType {
     Identical,
     Framed,
     Linear(isize),
 }

Variants§

§

Identical

§

Framed

§

Linear(isize)

offset of page num

Trait Implementations§

source§

impl Clone for MapType

source§

fn clone(&self) -> MapType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MapType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for MapType

source§

fn eq(&self, other: &MapType) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for MapType

source§

impl StructuralPartialEq for MapType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

source§

impl Copy for MapType

source§

impl StructuralPartialEq for MapType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -23,9 +22,9 @@ sufficient, and should not be overridden without very good reason.
OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/memory_set/fn.ebss.html b/main/os/mm/memory_set/fn.ebss.html index 3a416694..32b2f5e1 100644 --- a/main/os/mm/memory_set/fn.ebss.html +++ b/main/os/mm/memory_set/fn.ebss.html @@ -1,2 +1 @@ -ebss in os::mm::memory_set - Rust -

Function os::mm::memory_set::ebss

source ·
unsafe extern "C" fn ebss()
\ No newline at end of file +ebss in os::mm::memory_set - Rust

Function os::mm::memory_set::ebss

source ·
unsafe extern "C" fn ebss()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.edata.html b/main/os/mm/memory_set/fn.edata.html index 7c88ed23..09613b77 100644 --- a/main/os/mm/memory_set/fn.edata.html +++ b/main/os/mm/memory_set/fn.edata.html @@ -1,2 +1 @@ -edata in os::mm::memory_set - Rust -

Function os::mm::memory_set::edata

source ·
unsafe extern "C" fn edata()
\ No newline at end of file +edata in os::mm::memory_set - Rust

Function os::mm::memory_set::edata

source ·
unsafe extern "C" fn edata()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.ekernel.html b/main/os/mm/memory_set/fn.ekernel.html index 98fb0f3b..af4280f7 100644 --- a/main/os/mm/memory_set/fn.ekernel.html +++ b/main/os/mm/memory_set/fn.ekernel.html @@ -1,2 +1 @@ -ekernel in os::mm::memory_set - Rust -

Function os::mm::memory_set::ekernel

source ·
unsafe extern "C" fn ekernel()
\ No newline at end of file +ekernel in os::mm::memory_set - Rust

Function os::mm::memory_set::ekernel

source ·
unsafe extern "C" fn ekernel()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.erodata.html b/main/os/mm/memory_set/fn.erodata.html index ace70fbd..d02194c3 100644 --- a/main/os/mm/memory_set/fn.erodata.html +++ b/main/os/mm/memory_set/fn.erodata.html @@ -1,2 +1 @@ -erodata in os::mm::memory_set - Rust -

Function os::mm::memory_set::erodata

source ·
unsafe extern "C" fn erodata()
\ No newline at end of file +erodata in os::mm::memory_set - Rust

Function os::mm::memory_set::erodata

source ·
unsafe extern "C" fn erodata()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.etext.html b/main/os/mm/memory_set/fn.etext.html index 8b07f6b1..d8f846c2 100644 --- a/main/os/mm/memory_set/fn.etext.html +++ b/main/os/mm/memory_set/fn.etext.html @@ -1,2 +1 @@ -etext in os::mm::memory_set - Rust -

Function os::mm::memory_set::etext

source ·
unsafe extern "C" fn etext()
\ No newline at end of file +etext in os::mm::memory_set - Rust

Function os::mm::memory_set::etext

source ·
unsafe extern "C" fn etext()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.kernel_token.html b/main/os/mm/memory_set/fn.kernel_token.html index f471ef55..ad0a98b1 100644 --- a/main/os/mm/memory_set/fn.kernel_token.html +++ b/main/os/mm/memory_set/fn.kernel_token.html @@ -1,2 +1 @@ -kernel_token in os::mm::memory_set - Rust -

Function os::mm::memory_set::kernel_token

source ·
pub fn kernel_token() -> usize
\ No newline at end of file +kernel_token in os::mm::memory_set - Rust

Function os::mm::memory_set::kernel_token

source ·
pub fn kernel_token() -> usize
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.remap_test.html b/main/os/mm/memory_set/fn.remap_test.html index b3775d21..d8263909 100644 --- a/main/os/mm/memory_set/fn.remap_test.html +++ b/main/os/mm/memory_set/fn.remap_test.html @@ -1,2 +1 @@ -remap_test in os::mm::memory_set - Rust -

Function os::mm::memory_set::remap_test

source ·
pub fn remap_test()
\ No newline at end of file +remap_test in os::mm::memory_set - Rust

Function os::mm::memory_set::remap_test

source ·
pub fn remap_test()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.sbss_with_stack.html b/main/os/mm/memory_set/fn.sbss_with_stack.html index 0b95afed..3d415919 100644 --- a/main/os/mm/memory_set/fn.sbss_with_stack.html +++ b/main/os/mm/memory_set/fn.sbss_with_stack.html @@ -1,2 +1 @@ -sbss_with_stack in os::mm::memory_set - Rust -

Function os::mm::memory_set::sbss_with_stack

source ·
unsafe extern "C" fn sbss_with_stack()
\ No newline at end of file +sbss_with_stack in os::mm::memory_set - Rust

Function os::mm::memory_set::sbss_with_stack

source ·
unsafe extern "C" fn sbss_with_stack()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.sdata.html b/main/os/mm/memory_set/fn.sdata.html index 60a8c1c6..d05c5a11 100644 --- a/main/os/mm/memory_set/fn.sdata.html +++ b/main/os/mm/memory_set/fn.sdata.html @@ -1,2 +1 @@ -sdata in os::mm::memory_set - Rust -

Function os::mm::memory_set::sdata

source ·
unsafe extern "C" fn sdata()
\ No newline at end of file +sdata in os::mm::memory_set - Rust

Function os::mm::memory_set::sdata

source ·
unsafe extern "C" fn sdata()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.srodata.html b/main/os/mm/memory_set/fn.srodata.html index a12d657f..94b9368b 100644 --- a/main/os/mm/memory_set/fn.srodata.html +++ b/main/os/mm/memory_set/fn.srodata.html @@ -1,2 +1 @@ -srodata in os::mm::memory_set - Rust -

Function os::mm::memory_set::srodata

source ·
unsafe extern "C" fn srodata()
\ No newline at end of file +srodata in os::mm::memory_set - Rust

Function os::mm::memory_set::srodata

source ·
unsafe extern "C" fn srodata()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.stext.html b/main/os/mm/memory_set/fn.stext.html index 55e56b2e..1d2a3436 100644 --- a/main/os/mm/memory_set/fn.stext.html +++ b/main/os/mm/memory_set/fn.stext.html @@ -1,2 +1 @@ -stext in os::mm::memory_set - Rust -

Function os::mm::memory_set::stext

source ·
unsafe extern "C" fn stext()
\ No newline at end of file +stext in os::mm::memory_set - Rust

Function os::mm::memory_set::stext

source ·
unsafe extern "C" fn stext()
\ No newline at end of file diff --git a/main/os/mm/memory_set/fn.strampoline.html b/main/os/mm/memory_set/fn.strampoline.html index 914d44f5..0ebadec5 100644 --- a/main/os/mm/memory_set/fn.strampoline.html +++ b/main/os/mm/memory_set/fn.strampoline.html @@ -1,2 +1 @@ -strampoline in os::mm::memory_set - Rust -

Function os::mm::memory_set::strampoline

source ·
unsafe extern "C" fn strampoline()
\ No newline at end of file +strampoline in os::mm::memory_set - Rust

Function os::mm::memory_set::strampoline

source ·
unsafe extern "C" fn strampoline()
\ No newline at end of file diff --git a/main/os/mm/memory_set/index.html b/main/os/mm/memory_set/index.html index 650f015b..579833aa 100644 --- a/main/os/mm/memory_set/index.html +++ b/main/os/mm/memory_set/index.html @@ -1,2 +1 @@ -os::mm::memory_set - Rust -
\ No newline at end of file +os::mm::memory_set - Rust

Module os::mm::memory_set

source ·

Structs§

Enums§

Functions§

\ No newline at end of file diff --git a/main/os/mm/memory_set/struct.KERNEL_SPACE.html b/main/os/mm/memory_set/struct.KERNEL_SPACE.html index f074ee20..78ea24c0 100644 --- a/main/os/mm/memory_set/struct.KERNEL_SPACE.html +++ b/main/os/mm/memory_set/struct.KERNEL_SPACE.html @@ -1,25 +1,24 @@ -KERNEL_SPACE in os::mm::memory_set - Rust -

Struct os::mm::memory_set::KERNEL_SPACE

source ·
pub struct KERNEL_SPACE {
+KERNEL_SPACE in os::mm::memory_set - Rust

Struct os::mm::memory_set::KERNEL_SPACE

source ·
pub struct KERNEL_SPACE {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for KERNEL_SPACE

§

type Target = Arc<UPIntrFreeCell<MemorySet>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<UPIntrFreeCell<MemorySet>>

Dereferences the value.
source§

impl LazyStatic for KERNEL_SPACE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for KERNEL_SPACE

§

type Target = Arc<UPIntrFreeCell<MemorySet>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<UPIntrFreeCell<MemorySet>>

Dereferences the value.
source§

impl LazyStatic for KERNEL_SPACE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/memory_set/struct.MapArea.html b/main/os/mm/memory_set/struct.MapArea.html index fcbff6c1..edd61d4c 100644 --- a/main/os/mm/memory_set/struct.MapArea.html +++ b/main/os/mm/memory_set/struct.MapArea.html @@ -1,5 +1,4 @@ -MapArea in os::mm::memory_set - Rust -

Struct os::mm::memory_set::MapArea

source ·
pub struct MapArea {
+MapArea in os::mm::memory_set - Rust

Struct os::mm::memory_set::MapArea

source ·
pub struct MapArea {
     vpn_range: SimpleRange<VirtPageNum>,
     data_frames: BTreeMap<VirtPageNum, FrameTracker>,
     map_type: MapType,
@@ -11,25 +10,25 @@
     map_perm: MapPermission
 ) -> Self

source

pub fn from_another(another: &MapArea) -> Self

source

pub fn map_one(&mut self, page_table: &mut PageTable, vpn: VirtPageNum)

source

pub fn unmap_one(&mut self, page_table: &mut PageTable, vpn: VirtPageNum)

source

pub fn map(&mut self, page_table: &mut PageTable)

source

pub fn unmap(&mut self, page_table: &mut PageTable)

source

pub fn copy_data(&mut self, page_table: &mut PageTable, data: &[u8])

data: start-aligned but maybe with shorter length assume that all frames were cleared before

-

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/memory_set/struct.MapPermission.html b/main/os/mm/memory_set/struct.MapPermission.html index edb9bdc8..a921b2b4 100644 --- a/main/os/mm/memory_set/struct.MapPermission.html +++ b/main/os/mm/memory_set/struct.MapPermission.html @@ -1,5 +1,4 @@ -MapPermission in os::mm::memory_set - Rust -

Struct os::mm::memory_set::MapPermission

source ·
pub struct MapPermission {
+MapPermission in os::mm::memory_set - Rust

Struct os::mm::memory_set::MapPermission

source ·
pub struct MapPermission {
     bits: u8,
 }

Fields§

§bits: u8

Implementations§

source§

impl MapPermission

source

pub const R: Self = _

source

pub const W: Self = _

source

pub const X: Self = _

source

pub const U: Self = _

source

pub const fn empty() -> Self

Returns an empty set of flags.

source

pub const fn all() -> Self

Returns the set containing all flags.

@@ -10,7 +9,7 @@ representation contains bits that do not correspond to a flag.

that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u8) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

-
Safety
+
§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that @@ -60,33 +59,33 @@ between ops::Not), as in !flags.

Trait Implementations§

source§

impl Binary for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for MapPermission

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
§

type Output = MapPermission

The resulting type after applying the & operator.
source§

impl BitAndAssign for MapPermission

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
§

type Output = MapPermission

The resulting type after applying the & operator.
source§

impl BitAndAssign for MapPermission

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr for MapPermission

source§

fn bitor(self, other: MapPermission) -> Self

Returns the union of the two sets of flags.

-
§

type Output = MapPermission

The resulting type after applying the | operator.
source§

impl BitOrAssign for MapPermission

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
§

type Output = MapPermission

The resulting type after applying the | operator.
source§

impl BitOrAssign for MapPermission

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor for MapPermission

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
§

type Output = MapPermission

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for MapPermission

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
source§

impl Clone for MapPermission

source§

fn clone(&self) -> MapPermission

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<MapPermission> for MapPermission

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<MapPermission> for MapPermission

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for MapPermission

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

§

type Output = MapPermission

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for MapPermission

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
source§

impl Clone for MapPermission

source§

fn clone(&self) -> MapPermission

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<MapPermission> for MapPermission

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<MapPermission> for MapPermission

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for MapPermission

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for MapPermission

source§

fn not(self) -> Self

Returns the complement of this set of flags.

-
§

type Output = MapPermission

The resulting type after applying the ! operator.
source§

impl Octal for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for MapPermission

source§

fn cmp(&self, other: &MapPermission) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for MapPermission

source§

fn not(self) -> Self

Returns the complement of this set of flags.

+
§

type Output = MapPermission

The resulting type after applying the ! operator.
source§

impl Octal for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for MapPermission

source§

fn cmp(&self, other: &MapPermission) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for MapPermission

source§

fn eq(&self, other: &MapPermission) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for MapPermission

source§

fn partial_cmp(&self, other: &MapPermission) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for MapPermission

source§

fn partial_cmp(&self, other: &MapPermission) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub for MapPermission

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
§

type Output = MapPermission

The resulting type after applying the - operator.
source§

impl SubAssign for MapPermission

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
source§

impl UpperHex for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for MapPermission

source§

impl Eq for MapPermission

source§

impl StructuralEq for MapPermission

source§

impl StructuralPartialEq for MapPermission

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

§

type Output = MapPermission

The resulting type after applying the - operator.

source§

impl SubAssign for MapPermission

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
source§

impl UpperHex for MapPermission

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for MapPermission

source§

impl Eq for MapPermission

source§

impl StructuralPartialEq for MapPermission

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -94,9 +93,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/memory_set/struct.MemorySet.html b/main/os/mm/memory_set/struct.MemorySet.html index f43e9b2a..901558ea 100644 --- a/main/os/mm/memory_set/struct.MemorySet.html +++ b/main/os/mm/memory_set/struct.MemorySet.html @@ -1,5 +1,4 @@ -MemorySet in os::mm::memory_set - Rust -

Struct os::mm::memory_set::MemorySet

source ·
pub struct MemorySet {
+MemorySet in os::mm::memory_set - Rust

Struct os::mm::memory_set::MemorySet

source ·
pub struct MemorySet {
     page_table: PageTable,
     areas: Vec<MapArea>,
 }

Fields§

§page_table: PageTable§areas: Vec<MapArea>

Implementations§

source§

impl MemorySet

source

pub fn new_bare() -> Self

source

pub fn token(&self) -> usize

source

pub fn insert_framed_area( @@ -15,25 +14,25 @@ space.

source

pub fn new_kernel() -> Self

Without kernel stacks.

source

pub fn from_elf(elf_data: &[u8]) -> (Self, usize, usize)

Include sections in elf and trampoline, also returns user_sp_base and entry point.

-
source

pub fn from_existed_user(user_space: &MemorySet) -> MemorySet

source

pub fn activate(&self)

source

pub fn translate(&self, vpn: VirtPageNum) -> Option<PageTableEntry>

source

pub fn recycle_data_pages(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

source

pub fn from_existed_user(user_space: &MemorySet) -> MemorySet

source

pub fn activate(&self)

source

pub fn translate(&self, vpn: VirtPageNum) -> Option<PageTableEntry>

source

pub fn recycle_data_pages(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/page_table/fn.translated_byte_buffer.html b/main/os/mm/page_table/fn.translated_byte_buffer.html index fb2b4a88..c73b47a8 100644 --- a/main/os/mm/page_table/fn.translated_byte_buffer.html +++ b/main/os/mm/page_table/fn.translated_byte_buffer.html @@ -1,5 +1,4 @@ -translated_byte_buffer in os::mm::page_table - Rust -
pub fn translated_byte_buffer(
+translated_byte_buffer in os::mm::page_table - Rust

Function os::mm::page_table::translated_byte_buffer

source ·
pub fn translated_byte_buffer(
     token: usize,
     ptr: *const u8,
     len: usize
diff --git a/main/os/mm/page_table/fn.translated_ref.html b/main/os/mm/page_table/fn.translated_ref.html
index abef1855..1485fdd8 100644
--- a/main/os/mm/page_table/fn.translated_ref.html
+++ b/main/os/mm/page_table/fn.translated_ref.html
@@ -1,2 +1 @@
-translated_ref in os::mm::page_table - Rust
-    

Function os::mm::page_table::translated_ref

source ·
pub fn translated_ref<T>(token: usize, ptr: *const T) -> &'static T
\ No newline at end of file +translated_ref in os::mm::page_table - Rust

Function os::mm::page_table::translated_ref

source ·
pub fn translated_ref<T>(token: usize, ptr: *const T) -> &'static T
\ No newline at end of file diff --git a/main/os/mm/page_table/fn.translated_refmut.html b/main/os/mm/page_table/fn.translated_refmut.html index bf3f21af..15be59e8 100644 --- a/main/os/mm/page_table/fn.translated_refmut.html +++ b/main/os/mm/page_table/fn.translated_refmut.html @@ -1,2 +1 @@ -translated_refmut in os::mm::page_table - Rust -
pub fn translated_refmut<T>(token: usize, ptr: *mut T) -> &'static mut T
\ No newline at end of file +translated_refmut in os::mm::page_table - Rust

Function os::mm::page_table::translated_refmut

source ·
pub fn translated_refmut<T>(token: usize, ptr: *mut T) -> &'static mut T
\ No newline at end of file diff --git a/main/os/mm/page_table/fn.translated_str.html b/main/os/mm/page_table/fn.translated_str.html index cff0a875..1ad8e20f 100644 --- a/main/os/mm/page_table/fn.translated_str.html +++ b/main/os/mm/page_table/fn.translated_str.html @@ -1,3 +1,2 @@ -translated_str in os::mm::page_table - Rust -

Function os::mm::page_table::translated_str

source ·
pub fn translated_str(token: usize, ptr: *const u8) -> String
Expand description

Load a string from other address spaces into kernel space without an end \0.

+translated_str in os::mm::page_table - Rust

Function os::mm::page_table::translated_str

source ·
pub fn translated_str(token: usize, ptr: *const u8) -> String
Expand description

Load a string from other address spaces into kernel space without an end \0.

\ No newline at end of file diff --git a/main/os/mm/page_table/index.html b/main/os/mm/page_table/index.html index 052bd632..e92f9747 100644 --- a/main/os/mm/page_table/index.html +++ b/main/os/mm/page_table/index.html @@ -1,2 +1 @@ -os::mm::page_table - Rust -
\ No newline at end of file +os::mm::page_table - Rust

Module os::mm::page_table

source ·

Structs§

Functions§

\ No newline at end of file diff --git a/main/os/mm/page_table/struct.PTEFlags.html b/main/os/mm/page_table/struct.PTEFlags.html index bd80a156..f4060855 100644 --- a/main/os/mm/page_table/struct.PTEFlags.html +++ b/main/os/mm/page_table/struct.PTEFlags.html @@ -1,5 +1,4 @@ -PTEFlags in os::mm::page_table - Rust -

Struct os::mm::page_table::PTEFlags

source ·
pub struct PTEFlags {
+PTEFlags in os::mm::page_table - Rust

Struct os::mm::page_table::PTEFlags

source ·
pub struct PTEFlags {
     bits: u8,
 }

Fields§

§bits: u8

Implementations§

source§

impl PTEFlags

source

pub const V: Self = _

source

pub const R: Self = _

source

pub const W: Self = _

source

pub const X: Self = _

source

pub const U: Self = _

source

pub const G: Self = _

source

pub const A: Self = _

source

pub const D: Self = _

source

pub const fn empty() -> Self

Returns an empty set of flags.

source

pub const fn all() -> Self

Returns the set containing all flags.

@@ -10,7 +9,7 @@ representation contains bits that do not correspond to a flag.

that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u8) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

-
Safety
+
§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that @@ -59,34 +58,34 @@ not set in self, but which are allowed for this type.

between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations§

source§

impl Binary for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for PTEFlags

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
§

type Output = PTEFlags

The resulting type after applying the & operator.
source§

impl BitAndAssign for PTEFlags

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+

Trait Implementations§

source§

impl Binary for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for PTEFlags

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
§

type Output = PTEFlags

The resulting type after applying the & operator.
source§

impl BitAndAssign for PTEFlags

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr for PTEFlags

source§

fn bitor(self, other: PTEFlags) -> Self

Returns the union of the two sets of flags.

§

type Output = PTEFlags

The resulting type after applying the | operator.
source§

impl BitOrAssign for PTEFlags

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor for PTEFlags

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
§

type Output = PTEFlags

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for PTEFlags

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
source§

impl Clone for PTEFlags

source§

fn clone(&self) -> PTEFlags

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<PTEFlags> for PTEFlags

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<PTEFlags> for PTEFlags

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for PTEFlags

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

§

type Output = PTEFlags

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for PTEFlags

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
source§

impl Clone for PTEFlags

source§

fn clone(&self) -> PTEFlags

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<PTEFlags> for PTEFlags

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<PTEFlags> for PTEFlags

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for PTEFlags

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for PTEFlags

source§

fn not(self) -> Self

Returns the complement of this set of flags.

-
§

type Output = PTEFlags

The resulting type after applying the ! operator.
source§

impl Octal for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for PTEFlags

source§

fn cmp(&self, other: &PTEFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for PTEFlags

source§

fn not(self) -> Self

Returns the complement of this set of flags.

+
§

type Output = PTEFlags

The resulting type after applying the ! operator.
source§

impl Octal for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for PTEFlags

source§

fn cmp(&self, other: &PTEFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for PTEFlags

source§

fn eq(&self, other: &PTEFlags) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for PTEFlags

source§

fn partial_cmp(&self, other: &PTEFlags) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for PTEFlags

source§

fn partial_cmp(&self, other: &PTEFlags) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub for PTEFlags

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

§

type Output = PTEFlags

The resulting type after applying the - operator.
source§

impl SubAssign for PTEFlags

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
source§

impl UpperHex for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for PTEFlags

source§

impl Eq for PTEFlags

source§

impl StructuralEq for PTEFlags

source§

impl StructuralPartialEq for PTEFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

source§

impl UpperHex for PTEFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for PTEFlags

source§

impl Eq for PTEFlags

source§

impl StructuralPartialEq for PTEFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -94,9 +93,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/page_table/struct.PageTable.html b/main/os/mm/page_table/struct.PageTable.html index bb74dd61..5ad42085 100644 --- a/main/os/mm/page_table/struct.PageTable.html +++ b/main/os/mm/page_table/struct.PageTable.html @@ -1,28 +1,27 @@ -PageTable in os::mm::page_table - Rust -

Struct os::mm::page_table::PageTable

source ·
pub struct PageTable {
+PageTable in os::mm::page_table - Rust

Struct os::mm::page_table::PageTable

source ·
pub struct PageTable {
     root_ppn: PhysPageNum,
     frames: Vec<FrameTracker>,
 }

Fields§

§root_ppn: PhysPageNum§frames: Vec<FrameTracker>

Implementations§

source§

impl PageTable

Assume that it won’t oom when creating/mapping.

source

pub fn new() -> Self

source

pub fn from_token(satp: usize) -> Self

Temporarily used to get arguments from user space.

-
source

fn find_pte_create(&mut self, vpn: VirtPageNum) -> Option<&mut PageTableEntry>

source

fn find_pte(&self, vpn: VirtPageNum) -> Option<&mut PageTableEntry>

source

pub fn map(&mut self, vpn: VirtPageNum, ppn: PhysPageNum, flags: PTEFlags)

source

pub fn unmap(&mut self, vpn: VirtPageNum)

source

pub fn translate(&self, vpn: VirtPageNum) -> Option<PageTableEntry>

source

pub fn translate_va(&self, va: VirtAddr) -> Option<PhysAddr>

source

pub fn token(&self) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

source

fn find_pte_create(&mut self, vpn: VirtPageNum) -> Option<&mut PageTableEntry>

source

fn find_pte(&self, vpn: VirtPageNum) -> Option<&mut PageTableEntry>

source

pub fn map(&mut self, vpn: VirtPageNum, ppn: PhysPageNum, flags: PTEFlags)

source

pub fn unmap(&mut self, vpn: VirtPageNum)

source

pub fn translate(&self, vpn: VirtPageNum) -> Option<PageTableEntry>

source

pub fn translate_va(&self, va: VirtAddr) -> Option<PhysAddr>

source

pub fn token(&self) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/page_table/struct.PageTableEntry.html b/main/os/mm/page_table/struct.PageTableEntry.html index 772d9973..a774e8ba 100644 --- a/main/os/mm/page_table/struct.PageTableEntry.html +++ b/main/os/mm/page_table/struct.PageTableEntry.html @@ -1,16 +1,15 @@ -PageTableEntry in os::mm::page_table - Rust -
#[repr(C)]
pub struct PageTableEntry { +PageTableEntry in os::mm::page_table - Rust

Struct os::mm::page_table::PageTableEntry

source ·
#[repr(C)]
pub struct PageTableEntry { pub bits: usize, -}

Fields§

§bits: usize

Implementations§

source§

impl PageTableEntry

source

pub fn new(ppn: PhysPageNum, flags: PTEFlags) -> Self

source

pub fn empty() -> Self

source

pub fn ppn(&self) -> PhysPageNum

source

pub fn flags(&self) -> PTEFlags

source

pub fn is_valid(&self) -> bool

source

pub fn readable(&self) -> bool

source

pub fn writable(&self) -> bool

source

pub fn executable(&self) -> bool

Trait Implementations§

source§

impl Clone for PageTableEntry

source§

fn clone(&self) -> PageTableEntry

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Copy for PageTableEntry

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§bits: usize

Implementations§

source§

impl PageTableEntry

source

pub fn new(ppn: PhysPageNum, flags: PTEFlags) -> Self

source

pub fn empty() -> Self

source

pub fn ppn(&self) -> PhysPageNum

source

pub fn flags(&self) -> PTEFlags

source

pub fn is_valid(&self) -> bool

source

pub fn readable(&self) -> bool

source

pub fn writable(&self) -> bool

source

pub fn executable(&self) -> bool

Trait Implementations§

source§

impl Clone for PageTableEntry

source§

fn clone(&self) -> PageTableEntry

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Copy for PageTableEntry

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -18,9 +17,9 @@ Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/page_table/struct.UserBuffer.html b/main/os/mm/page_table/struct.UserBuffer.html index 9a8f7e52..2f4ba699 100644 --- a/main/os/mm/page_table/struct.UserBuffer.html +++ b/main/os/mm/page_table/struct.UserBuffer.html @@ -1,25 +1,24 @@ -UserBuffer in os::mm::page_table - Rust -

Struct os::mm::page_table::UserBuffer

source ·
pub struct UserBuffer {
+UserBuffer in os::mm::page_table - Rust

Struct os::mm::page_table::UserBuffer

source ·
pub struct UserBuffer {
     pub buffers: Vec<&'static mut [u8]>,
-}

Fields§

§buffers: Vec<&'static mut [u8]>

Implementations§

source§

impl UserBuffer

source

pub fn new(buffers: Vec<&'static mut [u8]>) -> Self

source

pub fn len(&self) -> usize

Trait Implementations§

source§

impl IntoIterator for UserBuffer

§

type Item = *mut u8

The type of the elements being iterated over.
§

type IntoIter = UserBufferIterator

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§buffers: Vec<&'static mut [u8]>

Implementations§

source§

impl UserBuffer

source

pub fn new(buffers: Vec<&'static mut [u8]>) -> Self

source

pub fn len(&self) -> usize

Trait Implementations§

source§

impl IntoIterator for UserBuffer

§

type Item = *mut u8

The type of the elements being iterated over.
§

type IntoIter = UserBufferIterator

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/mm/page_table/struct.UserBufferIterator.html b/main/os/mm/page_table/struct.UserBufferIterator.html index 211df4e5..4f2accbf 100644 --- a/main/os/mm/page_table/struct.UserBufferIterator.html +++ b/main/os/mm/page_table/struct.UserBufferIterator.html @@ -1,88 +1,87 @@ -UserBufferIterator in os::mm::page_table - Rust -
pub struct UserBufferIterator {
+UserBufferIterator in os::mm::page_table - Rust

Struct os::mm::page_table::UserBufferIterator

source ·
pub struct UserBufferIterator {
     buffers: Vec<&'static mut [u8]>,
     current_buffer: usize,
     current_idx: usize,
-}

Fields§

§buffers: Vec<&'static mut [u8]>§current_buffer: usize§current_idx: usize

Trait Implementations§

source§

impl Iterator for UserBufferIterator

§

type Item = *mut u8

The type of the elements being iterated over.
source§

fn next(&mut self) -> Option<Self::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( +}

Fields§

§buffers: Vec<&'static mut [u8]>§current_buffer: usize§current_idx: usize

Trait Implementations§

source§

impl Iterator for UserBufferIterator

§

type Item = *mut u8

The type of the elements being iterated over.
source§

fn next(&mut self) -> Option<Self::Item>

Advances the iterator and returns the next value. Read more
source§

fn next_chunk<const N: usize>( &mut self ) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
where - Self: Sized,

🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · source§

fn count(self) -> usize
where - Self: Sized,

Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · source§

fn last(self) -> Option<Self::Item>
where - Self: Sized,

Consumes the iterator, returning the last element. Read more
source§

fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>

🔬This is a nightly-only experimental API. (iter_advance_by)
Advances the iterator by n elements. Read more
1.0.0 · source§

fn nth(&mut self, n: usize) -> Option<Self::Item>

Returns the nth element of the iterator. Read more
1.28.0 · source§

fn step_by(self, step: usize) -> StepBy<Self>
where + Self: Sized,

🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · source§

fn count(self) -> usize
where + Self: Sized,

Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · source§

fn last(self) -> Option<Self::Item>
where + Self: Sized,

Consumes the iterator, returning the last element. Read more
source§

fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

🔬This is a nightly-only experimental API. (iter_advance_by)
Advances the iterator by n elements. Read more
1.0.0 · source§

fn nth(&mut self, n: usize) -> Option<Self::Item>

Returns the nth element of the iterator. Read more
1.28.0 · source§

fn step_by(self, step: usize) -> StepBy<Self>
where Self: Sized,

Creates an iterator starting at the same point, but stepping by -the given amount at each iteration. Read more
1.0.0 · source§

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
where +the given amount at each iteration. Read more

1.0.0 · source§

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, - U: IntoIterator<Item = Self::Item>,

Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · source§

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
where + U: IntoIterator<Item = Self::Item>,

Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · source§

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, - U: IntoIterator,

‘Zips up’ two iterators into a single iterator of pairs. Read more
source§

fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
where + U: IntoIterator,

‘Zips up’ two iterators into a single iterator of pairs. Read more
source§

fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
where Self: Sized, Self::Item: Clone,

🔬This is a nightly-only experimental API. (iter_intersperse)
Creates a new iterator which places a copy of separator between adjacent -items of the original iterator. Read more
source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
where +items of the original iterator. Read more

source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
where Self: Sized, G: FnMut() -> Self::Item,

🔬This is a nightly-only experimental API. (iter_intersperse)
Creates a new iterator which places an item generated by separator -between adjacent items of the original iterator. Read more
1.0.0 · source§

fn map<B, F>(self, f: F) -> Map<Self, F>
where +between adjacent items of the original iterator. Read more

1.0.0 · source§

fn map<B, F>(self, f: F) -> Map<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> B,

Takes a closure and creates an iterator which calls that closure on each -element. Read more
1.21.0 · source§

fn for_each<F>(self, f: F)
where +element. Read more

1.21.0 · source§

fn for_each<F>(self, f: F)
where Self: Sized, - F: FnMut(Self::Item),

Calls a closure on each element of an iterator. Read more
1.0.0 · source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where + F: FnMut(Self::Item),

Calls a closure on each element of an iterator. Read more
1.0.0 · source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates an iterator which uses a closure to determine if an element -should be yielded. Read more
1.0.0 · source§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
where +should be yielded. Read more

1.0.0 · source§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
where Self: Sized, - F: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both filters and maps. Read more
1.0.0 · source§

fn enumerate(self) -> Enumerate<Self>
where + F: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both filters and maps. Read more
1.0.0 · source§

fn enumerate(self) -> Enumerate<Self>
where Self: Sized,

Creates an iterator which gives the current iteration count as well as -the next value. Read more
1.0.0 · source§

fn peekable(self) -> Peekable<Self>
where +the next value. Read more

1.0.0 · source§

fn peekable(self) -> Peekable<Self>
where Self: Sized,

Creates an iterator which can use the peek and peek_mut methods to look at the next element of the iterator without consuming it. See -their documentation for more information. Read more
1.0.0 · source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where +their documentation for more information. Read more

1.0.0 · source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where Self: Sized, - P: FnMut(&Self::Item) -> bool,

Creates an iterator that skips elements based on a predicate. Read more
1.0.0 · source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where + P: FnMut(&Self::Item) -> bool,

Creates an iterator that skips elements based on a predicate. Read more
1.0.0 · source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where Self: Sized, - P: FnMut(&Self::Item) -> bool,

Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · source§

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
where + P: FnMut(&Self::Item) -> bool,

Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · source§

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
where Self: Sized, - P: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · source§

fn skip(self, n: usize) -> Skip<Self>
where - Self: Sized,

Creates an iterator that skips the first n elements. Read more
1.0.0 · source§

fn take(self, n: usize) -> Take<Self>
where + P: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · source§

fn skip(self, n: usize) -> Skip<Self>
where + Self: Sized,

Creates an iterator that skips the first n elements. Read more
1.0.0 · source§

fn take(self, n: usize) -> Take<Self>
where Self: Sized,

Creates an iterator that yields the first n elements, or fewer -if the underlying iterator ends sooner. Read more
1.0.0 · source§

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
where +if the underlying iterator ends sooner. Read more

1.0.0 · source§

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
where Self: Sized, F: FnMut(&mut St, Self::Item) -> Option<B>,

An iterator adapter which, like fold, holds internal state, but -unlike fold, produces a new iterator. Read more
1.0.0 · source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
where +unlike fold, produces a new iterator. Read more

1.0.0 · source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
where Self: Sized, U: IntoIterator, - F: FnMut(Self::Item) -> U,

Creates an iterator that works like map, but flattens nested structure. Read more
source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where + F: FnMut(Self::Item) -> U,

Creates an iterator that works like map, but flattens nested structure. Read more
source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where Self: Sized, F: FnMut(&[Self::Item; N]) -> R,

🔬This is a nightly-only experimental API. (iter_map_windows)
Calls the given function f for each contiguous window of size N over self and returns an iterator over the outputs of f. Like slice::windows(), -the windows during mapping overlap as well. Read more
1.0.0 · source§

fn fuse(self) -> Fuse<Self>
where - Self: Sized,

Creates an iterator which ends after the first None. Read more
1.0.0 · source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where +the windows during mapping overlap as well. Read more

1.0.0 · source§

fn fuse(self) -> Fuse<Self>
where + Self: Sized,

Creates an iterator which ends after the first None. Read more
1.0.0 · source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where Self: Sized, - F: FnMut(&Self::Item),

Does something with each element of an iterator, passing the value on. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where - Self: Sized,

Borrows an iterator, rather than consuming it. Read more
1.0.0 · source§

fn collect<B>(self) -> B
where + F: FnMut(&Self::Item),

Does something with each element of an iterator, passing the value on. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where + Self: Sized,

Borrows an iterator, rather than consuming it. Read more
1.0.0 · source§

fn collect<B>(self) -> B
where B: FromIterator<Self::Item>, - Self: Sized,

Transforms an iterator into a collection. Read more
source§

fn collect_into<E>(self, collection: &mut E) -> &mut E
where + Self: Sized,

Transforms an iterator into a collection. Read more
source§

fn collect_into<E>(self, collection: &mut E) -> &mut E
where E: Extend<Self::Item>, - Self: Sized,

🔬This is a nightly-only experimental API. (iter_collect_into)
Collects all the items from an iterator into a collection. Read more
1.0.0 · source§

fn partition<B, F>(self, f: F) -> (B, B)
where + Self: Sized,

🔬This is a nightly-only experimental API. (iter_collect_into)
Collects all the items from an iterator into a collection. Read more
1.0.0 · source§

fn partition<B, F>(self, f: F) -> (B, B)
where Self: Sized, B: Default + Extend<Self::Item>, - F: FnMut(&Self::Item) -> bool,

Consumes an iterator, creating two collections from it. Read more
source§

fn is_partitioned<P>(self, predicate: P) -> bool
where + F: FnMut(&Self::Item) -> bool,

Consumes an iterator, creating two collections from it. Read more
source§

fn is_partitioned<P>(self, predicate: P) -> bool
where Self: Sized, P: FnMut(Self::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate, -such that all those that return true precede all those that return false. Read more
1.27.0 · source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
where +such that all those that return true precede all those that return false. Read more

1.27.0 · source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
where Self: Sized, F: FnMut(B, Self::Item) -> R, R: Try<Output = B>,

An iterator method that applies a function as long as it returns -successfully, producing a single, final value. Read more
1.27.0 · source§

fn try_for_each<F, R>(&mut self, f: F) -> R
where +successfully, producing a single, final value. Read more

1.27.0 · source§

fn try_for_each<F, R>(&mut self, f: F) -> R
where Self: Sized, F: FnMut(Self::Item) -> R, R: Try<Output = ()>,

An iterator method that applies a fallible function to each item in the -iterator, stopping at the first error and returning that error. Read more
1.0.0 · source§

fn fold<B, F>(self, init: B, f: F) -> B
where +iterator, stopping at the first error and returning that error. Read more

1.0.0 · source§

fn fold<B, F>(self, init: B, f: F) -> B
where Self: Sized, F: FnMut(B, Self::Item) -> B,

Folds every element into an accumulator by applying an operation, -returning the final result. Read more
1.51.0 · source§

fn reduce<F>(self, f: F) -> Option<Self::Item>
where +returning the final result. Read more

1.51.0 · source§

fn reduce<F>(self, f: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(Self::Item, Self::Item) -> Self::Item,

Reduces the elements to a single one, by repeatedly applying a reducing -operation. Read more
source§

fn try_reduce<F, R>( +operation. Read more

source§

fn try_reduce<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
where @@ -90,16 +89,16 @@ operation. FnMut(Self::Item, Self::Item) -> R, R: Try<Output = Self::Item>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the -closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 · source§

fn all<F>(&mut self, f: F) -> bool
where +closure returns a failure, the failure is propagated back to the caller immediately. Read more

1.0.0 · source§

fn all<F>(&mut self, f: F) -> bool
where Self: Sized, - F: FnMut(Self::Item) -> bool,

Tests if every element of the iterator matches a predicate. Read more
1.0.0 · source§

fn any<F>(&mut self, f: F) -> bool
where + F: FnMut(Self::Item) -> bool,

Tests if every element of the iterator matches a predicate. Read more
1.0.0 · source§

fn any<F>(&mut self, f: F) -> bool
where Self: Sized, - F: FnMut(Self::Item) -> bool,

Tests if any element of the iterator matches a predicate. Read more
1.0.0 · source§

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where + F: FnMut(Self::Item) -> bool,

Tests if any element of the iterator matches a predicate. Read more
1.0.0 · source§

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where Self: Sized, - P: FnMut(&Self::Item) -> bool,

Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · source§

fn find_map<B, F>(&mut self, f: F) -> Option<B>
where + P: FnMut(&Self::Item) -> bool,

Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · source§

fn find_map<B, F>(&mut self, f: F) -> Option<B>
where Self: Sized, F: FnMut(Self::Item) -> Option<B>,

Applies function to the elements of iterator and returns -the first non-none result. Read more
source§

fn try_find<F, R>( +the first non-none result. Read more

source§

fn try_find<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
where @@ -107,112 +106,112 @@ the first non-none result. FnMut(&Self::Item) -> R, R: Try<Output = bool>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (try_find)
Applies function to the elements of iterator and returns -the first true result or the first error. Read more
1.0.0 · source§

fn position<P>(&mut self, predicate: P) -> Option<usize>
where +the first true result or the first error. Read more

1.0.0 · source§

fn position<P>(&mut self, predicate: P) -> Option<usize>
where Self: Sized, - P: FnMut(Self::Item) -> bool,

Searches for an element in an iterator, returning its index. Read more
1.0.0 · source§

fn max(self) -> Option<Self::Item>
where + P: FnMut(Self::Item) -> bool,

Searches for an element in an iterator, returning its index. Read more
1.0.0 · source§

fn max(self) -> Option<Self::Item>
where Self: Sized, - Self::Item: Ord,

Returns the maximum element of an iterator. Read more
1.0.0 · source§

fn min(self) -> Option<Self::Item>
where + Self::Item: Ord,

Returns the maximum element of an iterator. Read more
1.0.0 · source§

fn min(self) -> Option<Self::Item>
where Self: Sized, - Self::Item: Ord,

Returns the minimum element of an iterator. Read more
1.6.0 · source§

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
where + Self::Item: Ord,

Returns the minimum element of an iterator. Read more
1.6.0 · source§

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Returns the element that gives the maximum value from the -specified function. Read more
1.15.0 · source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>
where +specified function. Read more

1.15.0 · source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the maximum value with respect to the -specified comparison function. Read more
1.6.0 · source§

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where +specified comparison function. Read more

1.6.0 · source§

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Returns the element that gives the minimum value from the -specified function. Read more
1.15.0 · source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>
where +specified function. Read more

1.15.0 · source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the minimum value with respect to the -specified comparison function. Read more
1.0.0 · source§

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
where +specified comparison function. Read more

1.0.0 · source§

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
where FromA: Default + Extend<A>, FromB: Default + Extend<B>, - Self: Sized + Iterator<Item = (A, B)>,

Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · source§

fn copied<'a, T>(self) -> Copied<Self>
where + Self: Sized + Iterator<Item = (A, B)>,

Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · source§

fn copied<'a, T>(self) -> Copied<Self>
where T: 'a + Copy, - Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which copies all of its elements. Read more
1.0.0 · source§

fn cloned<'a, T>(self) -> Cloned<Self>
where + Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which copies all of its elements. Read more
1.0.0 · source§

fn cloned<'a, T>(self) -> Cloned<Self>
where T: 'a + Clone, - Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which clones all of its elements. Read more
source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
where - Self: Sized,

🔬This is a nightly-only experimental API. (iter_array_chunks)
Returns an iterator over N elements of the iterator at a time. Read more
1.11.0 · source§

fn sum<S>(self) -> S
where + Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which clones all of its elements. Read more
source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
where + Self: Sized,

🔬This is a nightly-only experimental API. (iter_array_chunks)
Returns an iterator over N elements of the iterator at a time. Read more
1.11.0 · source§

fn sum<S>(self) -> S
where Self: Sized, - S: Sum<Self::Item>,

Sums the elements of an iterator. Read more
1.11.0 · source§

fn product<P>(self) -> P
where + S: Sum<Self::Item>,

Sums the elements of an iterator. Read more
1.11.0 · source§

fn product<P>(self) -> P
where Self: Sized, - P: Product<Self::Item>,

Iterates over the entire iterator, multiplying all the elements Read more
1.5.0 · source§

fn cmp<I>(self, other: I) -> Ordering
where + P: Product<Self::Item>,

Iterates over the entire iterator, multiplying all the elements Read more
1.5.0 · source§

fn cmp<I>(self, other: I) -> Ordering
where I: IntoIterator<Item = Self::Item>, Self::Item: Ord, Self: Sized,

Lexicographically compares the elements of this Iterator with those -of another. Read more
source§

fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
where +of another. Read more

source§

fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those -of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn partial_cmp<I>(self, other: I) -> Option<Ordering>
where +of another with respect to the specified comparison function. Read more

1.5.0 · source§

fn partial_cmp<I>(self, other: I) -> Option<Ordering>
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Lexicographically compares the PartialOrd elements of this Iterator with those of another. The comparison works like short-circuit evaluation, returning a result without comparing the remaining elements. -As soon as an order can be determined, the evaluation stops and a result is returned. Read more
source§

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
where +As soon as an order can be determined, the evaluation stops and a result is returned. Read more

source§

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those -of another with respect to the specified comparison function. Read more
1.5.0 · source§

fn eq<I>(self, other: I) -> bool
where +of another with respect to the specified comparison function. Read more

1.5.0 · source§

fn eq<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are equal to those of -another. Read more
source§

fn eq_by<I, F>(self, other: I, eq: F) -> bool
where +another. Read more

source§

fn eq_by<I, F>(self, other: I, eq: F) -> bool
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_order_by)
Determines if the elements of this Iterator are equal to those of -another with respect to the specified equality function. Read more
1.5.0 · source§

fn ne<I>(self, other: I) -> bool
where +another with respect to the specified equality function. Read more

1.5.0 · source§

fn ne<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are not equal to those of -another. Read more
1.5.0 · source§

fn lt<I>(self, other: I) -> bool
where +another. Read more

1.5.0 · source§

fn lt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -less than those of another. Read more
1.5.0 · source§

fn le<I>(self, other: I) -> bool
where +less than those of another. Read more

1.5.0 · source§

fn le<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -less or equal to those of another. Read more
1.5.0 · source§

fn gt<I>(self, other: I) -> bool
where +less or equal to those of another. Read more

1.5.0 · source§

fn gt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -greater than those of another. Read more
1.5.0 · source§

fn ge<I>(self, other: I) -> bool
where +greater than those of another. Read more

1.5.0 · source§

fn ge<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically -greater than or equal to those of another. Read more
source§

fn is_sorted(self) -> bool
where +greater than or equal to those of another. Read more

source§

fn is_sorted(self) -> bool
where Self: Sized, - Self::Item: PartialOrd,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted. Read more
source§

fn is_sorted_by<F>(self, compare: F) -> bool
where + Self::Item: PartialOrd,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted. Read more
source§

fn is_sorted_by<F>(self, compare: F) -> bool
where Self: Sized, - F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given comparator function. Read more
source§

fn is_sorted_by_key<F, K>(self, f: F) -> bool
where + F: FnMut(&Self::Item, &Self::Item) -> bool,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given comparator function. Read more
source§

fn is_sorted_by_key<F, K>(self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> K, K: PartialOrd,

🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this iterator are sorted using the given key extraction -function. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +function. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<I> IntoIterator for I
where - I: Iterator,

§

type Item = <I as Iterator>::Item

The type of the elements being iterated over.
§

type IntoIter = I

Which kind of iterator are we turning this into?
const: unstable · source§

fn into_iter(self) -> I

Creates an iterator from a value. Read more
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where +

source§

impl<I> IntoIterator for I
where + I: Iterator,

§

type Item = <I as Iterator>::Item

The type of the elements being iterated over.
§

type IntoIter = I

Which kind of iterator are we turning this into?
const: unstable · source§

fn into_iter(self) -> I

Creates an iterator from a value. Read more
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/fn.hexdump.html b/main/os/net/fn.hexdump.html index d04fa6dd..103af033 100644 --- a/main/os/net/fn.hexdump.html +++ b/main/os/net/fn.hexdump.html @@ -1,2 +1 @@ -hexdump in os::net - Rust -

Function os::net::hexdump

source ·
pub fn hexdump(data: &[u8])
\ No newline at end of file +hexdump in os::net - Rust

Function os::net::hexdump

source ·
pub fn hexdump(data: &[u8])
\ No newline at end of file diff --git a/main/os/net/fn.net_interrupt_handler.html b/main/os/net/fn.net_interrupt_handler.html index c76ad28a..a2b16c14 100644 --- a/main/os/net/fn.net_interrupt_handler.html +++ b/main/os/net/fn.net_interrupt_handler.html @@ -1,2 +1 @@ -net_interrupt_handler in os::net - Rust -

Function os::net::net_interrupt_handler

source ·
pub fn net_interrupt_handler()
\ No newline at end of file +net_interrupt_handler in os::net - Rust

Function os::net::net_interrupt_handler

source ·
pub fn net_interrupt_handler()
\ No newline at end of file diff --git a/main/os/net/index.html b/main/os/net/index.html index b1ea31b1..7c060025 100644 --- a/main/os/net/index.html +++ b/main/os/net/index.html @@ -1,2 +1 @@ -os::net - Rust -
\ No newline at end of file +os::net - Rust
\ No newline at end of file diff --git a/main/os/net/port_table/fn.accept.html b/main/os/net/port_table/fn.accept.html index 73b46a74..2472e174 100644 --- a/main/os/net/port_table/fn.accept.html +++ b/main/os/net/port_table/fn.accept.html @@ -1,2 +1 @@ -accept in os::net::port_table - Rust -

Function os::net::port_table::accept

source ·
pub fn accept(listen_index: usize, task: Arc<TaskControlBlock>)
\ No newline at end of file +accept in os::net::port_table - Rust

Function os::net::port_table::accept

source ·
pub fn accept(listen_index: usize, task: Arc<TaskControlBlock>)
\ No newline at end of file diff --git a/main/os/net/port_table/fn.accept_connection.html b/main/os/net/port_table/fn.accept_connection.html index c205c7aa..bc751a0d 100644 --- a/main/os/net/port_table/fn.accept_connection.html +++ b/main/os/net/port_table/fn.accept_connection.html @@ -1,5 +1,4 @@ -accept_connection in os::net::port_table - Rust -
pub fn accept_connection(
+accept_connection in os::net::port_table - Rust

Function os::net::port_table::accept_connection

source ·
pub fn accept_connection(
     _port: u16,
     tcp_packet: &TCPPacket<'_>,
     task: Arc<TaskControlBlock>
diff --git a/main/os/net/port_table/fn.check_accept.html b/main/os/net/port_table/fn.check_accept.html
index 0765e513..0406c5ef 100644
--- a/main/os/net/port_table/fn.check_accept.html
+++ b/main/os/net/port_table/fn.check_accept.html
@@ -1,2 +1 @@
-check_accept in os::net::port_table - Rust
-    

Function os::net::port_table::check_accept

source ·
pub fn check_accept(port: u16, tcp_packet: &TCPPacket<'_>) -> Option<()>
\ No newline at end of file +check_accept in os::net::port_table - Rust

Function os::net::port_table::check_accept

source ·
pub fn check_accept(port: u16, tcp_packet: &TCPPacket<'_>) -> Option<()>
\ No newline at end of file diff --git a/main/os/net/port_table/fn.listen.html b/main/os/net/port_table/fn.listen.html index 30c23bac..9b37e944 100644 --- a/main/os/net/port_table/fn.listen.html +++ b/main/os/net/port_table/fn.listen.html @@ -1,2 +1 @@ -listen in os::net::port_table - Rust -

Function os::net::port_table::listen

source ·
pub fn listen(port: u16) -> Option<usize>
\ No newline at end of file +listen in os::net::port_table - Rust

Function os::net::port_table::listen

source ·
pub fn listen(port: u16) -> Option<usize>
\ No newline at end of file diff --git a/main/os/net/port_table/fn.port_acceptable.html b/main/os/net/port_table/fn.port_acceptable.html index d03333da..7a7e974c 100644 --- a/main/os/net/port_table/fn.port_acceptable.html +++ b/main/os/net/port_table/fn.port_acceptable.html @@ -1,2 +1 @@ -port_acceptable in os::net::port_table - Rust -

Function os::net::port_table::port_acceptable

source ·
pub fn port_acceptable(listen_index: usize) -> bool
\ No newline at end of file +port_acceptable in os::net::port_table - Rust

Function os::net::port_table::port_acceptable

source ·
pub fn port_acceptable(listen_index: usize) -> bool
\ No newline at end of file diff --git a/main/os/net/port_table/index.html b/main/os/net/port_table/index.html index 31208610..19861aa9 100644 --- a/main/os/net/port_table/index.html +++ b/main/os/net/port_table/index.html @@ -1,2 +1 @@ -os::net::port_table - Rust -
\ No newline at end of file +os::net::port_table - Rust
\ No newline at end of file diff --git a/main/os/net/port_table/struct.LISTEN_TABLE.html b/main/os/net/port_table/struct.LISTEN_TABLE.html index a0c430cd..278a7235 100644 --- a/main/os/net/port_table/struct.LISTEN_TABLE.html +++ b/main/os/net/port_table/struct.LISTEN_TABLE.html @@ -1,27 +1,26 @@ -LISTEN_TABLE in os::net::port_table - Rust -

Struct os::net::port_table::LISTEN_TABLE

source ·
struct LISTEN_TABLE {
+LISTEN_TABLE in os::net::port_table - Rust

Struct os::net::port_table::LISTEN_TABLE

source ·
struct LISTEN_TABLE {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Vec<Option<Port>>>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for LISTEN_TABLE

§

type Target = UPIntrFreeCell<Vec<Option<Port>>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Vec<Option<Port>>>

Dereferences the value.
source§

impl LazyStatic for LISTEN_TABLE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for LISTEN_TABLE

§

type Target = UPIntrFreeCell<Vec<Option<Port>>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Vec<Option<Port>>>

Dereferences the value.
source§

impl LazyStatic for LISTEN_TABLE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/port_table/struct.Port.html b/main/os/net/port_table/struct.Port.html index dd8dc472..d62b5d38 100644 --- a/main/os/net/port_table/struct.Port.html +++ b/main/os/net/port_table/struct.Port.html @@ -1,27 +1,26 @@ -Port in os::net::port_table - Rust -

Struct os::net::port_table::Port

source ·
pub struct Port {
+Port in os::net::port_table - Rust

Struct os::net::port_table::Port

source ·
pub struct Port {
     pub port: u16,
     pub receivable: bool,
     pub schedule: Option<Arc<TaskControlBlock>>,
-}

Fields§

§port: u16§receivable: bool§schedule: Option<Arc<TaskControlBlock>>

Auto Trait Implementations§

§

impl !RefUnwindSafe for Port

§

impl Send for Port

§

impl Sync for Port

§

impl Unpin for Port

§

impl !UnwindSafe for Port

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§port: u16§receivable: bool§schedule: Option<Arc<TaskControlBlock>>

Auto Trait Implementations§

§

impl Freeze for Port

§

impl !RefUnwindSafe for Port

§

impl Send for Port

§

impl Sync for Port

§

impl Unpin for Port

§

impl !UnwindSafe for Port

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/port_table/struct.PortFd.html b/main/os/net/port_table/struct.PortFd.html index d1f16cca..7ebabfd8 100644 --- a/main/os/net/port_table/struct.PortFd.html +++ b/main/os/net/port_table/struct.PortFd.html @@ -1,23 +1,22 @@ -PortFd in os::net::port_table - Rust -

Struct os::net::port_table::PortFd

source ·
pub struct PortFd(usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl PortFd

source

pub fn new(port_index: usize) -> Self

Trait Implementations§

source§

impl Drop for PortFd

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl File for PortFd

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, _buf: UserBuffer) -> usize

source§

fn write(&self, _buf: UserBuffer) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +PortFd in os::net::port_table - Rust

Struct os::net::port_table::PortFd

source ·
pub struct PortFd(usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl PortFd

source

pub fn new(port_index: usize) -> Self

Trait Implementations§

source§

impl Drop for PortFd

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl File for PortFd

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, _buf: UserBuffer) -> usize

source§

fn write(&self, _buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl Freeze for PortFd

§

impl RefUnwindSafe for PortFd

§

impl Send for PortFd

§

impl Sync for PortFd

§

impl Unpin for PortFd

§

impl UnwindSafe for PortFd

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/socket/fn.add_socket.html b/main/os/net/socket/fn.add_socket.html index d416719d..1e11dcf4 100644 --- a/main/os/net/socket/fn.add_socket.html +++ b/main/os/net/socket/fn.add_socket.html @@ -1,2 +1 @@ -add_socket in os::net::socket - Rust -

Function os::net::socket::add_socket

source ·
pub fn add_socket(raddr: IPv4, lport: u16, rport: u16) -> Option<usize>
\ No newline at end of file +add_socket in os::net::socket - Rust

Function os::net::socket::add_socket

source ·
pub fn add_socket(raddr: IPv4, lport: u16, rport: u16) -> Option<usize>
\ No newline at end of file diff --git a/main/os/net/socket/fn.get_s_a_by_index.html b/main/os/net/socket/fn.get_s_a_by_index.html index 5753f166..f04a8f27 100644 --- a/main/os/net/socket/fn.get_s_a_by_index.html +++ b/main/os/net/socket/fn.get_s_a_by_index.html @@ -1,3 +1,2 @@ -get_s_a_by_index in os::net::socket - Rust -

Function os::net::socket::get_s_a_by_index

source ·
pub fn get_s_a_by_index(index: usize) -> Option<(u32, u32)>
Expand description

get the seq and ack by socket index

+get_s_a_by_index in os::net::socket - Rust

Function os::net::socket::get_s_a_by_index

source ·
pub fn get_s_a_by_index(index: usize) -> Option<(u32, u32)>
Expand description

get the seq and ack by socket index

\ No newline at end of file diff --git a/main/os/net/socket/fn.get_socket.html b/main/os/net/socket/fn.get_socket.html index 2f74f1c1..63012d9e 100644 --- a/main/os/net/socket/fn.get_socket.html +++ b/main/os/net/socket/fn.get_socket.html @@ -1,2 +1 @@ -get_socket in os::net::socket - Rust -

Function os::net::socket::get_socket

source ·
pub fn get_socket(raddr: IPv4, lport: u16, rport: u16) -> Option<usize>
\ No newline at end of file +get_socket in os::net::socket - Rust

Function os::net::socket::get_socket

source ·
pub fn get_socket(raddr: IPv4, lport: u16, rport: u16) -> Option<usize>
\ No newline at end of file diff --git a/main/os/net/socket/fn.pop_data.html b/main/os/net/socket/fn.pop_data.html index 6cef68b0..f682885f 100644 --- a/main/os/net/socket/fn.pop_data.html +++ b/main/os/net/socket/fn.pop_data.html @@ -1,2 +1 @@ -pop_data in os::net::socket - Rust -

Function os::net::socket::pop_data

source ·
pub fn pop_data(index: usize) -> Option<Vec<u8>>
\ No newline at end of file +pop_data in os::net::socket - Rust

Function os::net::socket::pop_data

source ·
pub fn pop_data(index: usize) -> Option<Vec<u8>>
\ No newline at end of file diff --git a/main/os/net/socket/fn.push_data.html b/main/os/net/socket/fn.push_data.html index d0d2f625..b8a9e729 100644 --- a/main/os/net/socket/fn.push_data.html +++ b/main/os/net/socket/fn.push_data.html @@ -1,2 +1 @@ -push_data in os::net::socket - Rust -

Function os::net::socket::push_data

source ·
pub fn push_data(index: usize, data: Vec<u8>)
\ No newline at end of file +push_data in os::net::socket - Rust

Function os::net::socket::push_data

source ·
pub fn push_data(index: usize, data: Vec<u8>)
\ No newline at end of file diff --git a/main/os/net/socket/fn.remove_socket.html b/main/os/net/socket/fn.remove_socket.html index def2a18e..11850132 100644 --- a/main/os/net/socket/fn.remove_socket.html +++ b/main/os/net/socket/fn.remove_socket.html @@ -1,2 +1 @@ -remove_socket in os::net::socket - Rust -

Function os::net::socket::remove_socket

source ·
pub fn remove_socket(index: usize)
\ No newline at end of file +remove_socket in os::net::socket - Rust

Function os::net::socket::remove_socket

source ·
pub fn remove_socket(index: usize)
\ No newline at end of file diff --git a/main/os/net/socket/fn.set_s_a_by_index.html b/main/os/net/socket/fn.set_s_a_by_index.html index f59f023f..abcb34c8 100644 --- a/main/os/net/socket/fn.set_s_a_by_index.html +++ b/main/os/net/socket/fn.set_s_a_by_index.html @@ -1,2 +1 @@ -set_s_a_by_index in os::net::socket - Rust -

Function os::net::socket::set_s_a_by_index

source ·
pub fn set_s_a_by_index(index: usize, seq: u32, ack: u32)
\ No newline at end of file +set_s_a_by_index in os::net::socket - Rust

Function os::net::socket::set_s_a_by_index

source ·
pub fn set_s_a_by_index(index: usize, seq: u32, ack: u32)
\ No newline at end of file diff --git a/main/os/net/socket/index.html b/main/os/net/socket/index.html index a0999744..e828e019 100644 --- a/main/os/net/socket/index.html +++ b/main/os/net/socket/index.html @@ -1,2 +1 @@ -os::net::socket - Rust -
\ No newline at end of file +os::net::socket - Rust

Module os::net::socket

source ·

Structs§

Functions§

\ No newline at end of file diff --git a/main/os/net/socket/struct.SOCKET_TABLE.html b/main/os/net/socket/struct.SOCKET_TABLE.html index f262b579..8061ae4e 100644 --- a/main/os/net/socket/struct.SOCKET_TABLE.html +++ b/main/os/net/socket/struct.SOCKET_TABLE.html @@ -1,27 +1,26 @@ -SOCKET_TABLE in os::net::socket - Rust -

Struct os::net::socket::SOCKET_TABLE

source ·
struct SOCKET_TABLE {
+SOCKET_TABLE in os::net::socket - Rust

Struct os::net::socket::SOCKET_TABLE

source ·
struct SOCKET_TABLE {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Vec<Option<Socket>>>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for SOCKET_TABLE

§

type Target = UPIntrFreeCell<Vec<Option<Socket>>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Vec<Option<Socket>>>

Dereferences the value.
source§

impl LazyStatic for SOCKET_TABLE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for SOCKET_TABLE

§

type Target = UPIntrFreeCell<Vec<Option<Socket>>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Vec<Option<Socket>>>

Dereferences the value.
source§

impl LazyStatic for SOCKET_TABLE

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/socket/struct.Socket.html b/main/os/net/socket/struct.Socket.html index 735e5b46..8cccffd6 100644 --- a/main/os/net/socket/struct.Socket.html +++ b/main/os/net/socket/struct.Socket.html @@ -1,30 +1,29 @@ -Socket in os::net::socket - Rust -

Struct os::net::socket::Socket

source ·
pub struct Socket {
+Socket in os::net::socket - Rust

Struct os::net::socket::Socket

source ·
pub struct Socket {
     pub raddr: IPv4,
     pub lport: u16,
     pub rport: u16,
     pub buffers: VecDeque<Vec<u8>>,
     pub seq: u32,
     pub ack: u32,
-}

Fields§

§raddr: IPv4§lport: u16§rport: u16§buffers: VecDeque<Vec<u8>>§seq: u32§ack: u32

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§raddr: IPv4§lport: u16§rport: u16§buffers: VecDeque<Vec<u8>>§seq: u32§ack: u32

Auto Trait Implementations§

§

impl Freeze for Socket

§

impl RefUnwindSafe for Socket

§

impl Send for Socket

§

impl Sync for Socket

§

impl Unpin for Socket

§

impl UnwindSafe for Socket

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/struct.IPv4.html b/main/os/net/struct.IPv4.html index d5ed7a15..638a7323 100644 --- a/main/os/net/struct.IPv4.html +++ b/main/os/net/struct.IPv4.html @@ -1,16 +1,15 @@ -IPv4 in os::net - Rust -

Struct os::net::IPv4

pub struct IPv4(u32);

Tuple Fields§

§0: u32

Implementations§

§

impl IPv4

pub fn new(a1: u8, a2: u8, a3: u8, a4: u8) -> IPv4

pub fn from_u32(ip: u32) -> IPv4

pub fn to_string(&self) -> String

pub fn to_u32(&self) -> u32

Trait Implementations§

§

impl Clone for IPv4

§

fn clone(&self) -> IPv4

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for IPv4

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for IPv4

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for IPv4

§

fn eq(&self, other: &IPv4) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
§

impl Copy for IPv4

§

impl Eq for IPv4

§

impl StructuralEq for IPv4

§

impl StructuralPartialEq for IPv4

Auto Trait Implementations§

§

impl RefUnwindSafe for IPv4

§

impl Send for IPv4

§

impl Sync for IPv4

§

impl Unpin for IPv4

§

impl UnwindSafe for IPv4

Blanket Implementations§

source§

impl<T> Any for T
where +IPv4 in os::net - Rust

Struct os::net::IPv4

pub struct IPv4(u32);

Tuple Fields§

§0: u32

Implementations§

§

impl IPv4

pub fn new(a1: u8, a2: u8, a3: u8, a4: u8) -> IPv4

pub fn from_u32(ip: u32) -> IPv4

pub fn to_string(&self) -> String

pub fn to_u32(&self) -> u32

Trait Implementations§

§

impl Clone for IPv4

§

fn clone(&self) -> IPv4

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for IPv4

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for IPv4

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for IPv4

§

fn eq(&self, other: &IPv4) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
§

impl Copy for IPv4

§

impl Eq for IPv4

§

impl StructuralPartialEq for IPv4

Auto Trait Implementations§

§

impl Freeze for IPv4

§

impl RefUnwindSafe for IPv4

§

impl Send for IPv4

§

impl Sync for IPv4

§

impl Unpin for IPv4

§

impl UnwindSafe for IPv4

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -18,10 +17,10 @@ sufficient, and should not be overridden without very good reason.
OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/struct.LOSE_NET_STACK.html b/main/os/net/struct.LOSE_NET_STACK.html index 4012f4a3..2bad6872 100644 --- a/main/os/net/struct.LOSE_NET_STACK.html +++ b/main/os/net/struct.LOSE_NET_STACK.html @@ -1,25 +1,24 @@ -LOSE_NET_STACK in os::net - Rust -

Struct os::net::LOSE_NET_STACK

source ·
struct LOSE_NET_STACK {
+LOSE_NET_STACK in os::net - Rust

Struct os::net::LOSE_NET_STACK

source ·
struct LOSE_NET_STACK {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for LOSE_NET_STACK

§

type Target = Arc<NetStack>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<NetStack>

Dereferences the value.
source§

impl LazyStatic for LOSE_NET_STACK

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for LOSE_NET_STACK

§

type Target = Arc<NetStack>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<NetStack>

Dereferences the value.
source§

impl LazyStatic for LOSE_NET_STACK

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/struct.NetStack.html b/main/os/net/struct.NetStack.html index 242bc93e..23bddf64 100644 --- a/main/os/net/struct.NetStack.html +++ b/main/os/net/struct.NetStack.html @@ -1,23 +1,22 @@ -NetStack in os::net - Rust -

Struct os::net::NetStack

source ·
pub struct NetStack(UPIntrFreeCell<LoseStack>);

Tuple Fields§

§0: UPIntrFreeCell<LoseStack>

Implementations§

source§

impl NetStack

source

pub fn new() -> Self

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +NetStack in os::net - Rust

Struct os::net::NetStack

source ·
pub struct NetStack(UPIntrFreeCell<LoseStack>);

Tuple Fields§

§0: UPIntrFreeCell<LoseStack>

Implementations§

source§

impl NetStack

source

pub fn new() -> Self

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/tcp/index.html b/main/os/net/tcp/index.html index 527a5f76..ee3d425b 100644 --- a/main/os/net/tcp/index.html +++ b/main/os/net/tcp/index.html @@ -1,2 +1 @@ -os::net::tcp - Rust -

Module os::net::tcp

source ·

Structs

\ No newline at end of file +os::net::tcp - Rust

Module os::net::tcp

source ·

Structs§

\ No newline at end of file diff --git a/main/os/net/tcp/struct.TCP.html b/main/os/net/tcp/struct.TCP.html index e3fa25f5..54b2695a 100644 --- a/main/os/net/tcp/struct.TCP.html +++ b/main/os/net/tcp/struct.TCP.html @@ -1,30 +1,29 @@ -TCP in os::net::tcp - Rust -

Struct os::net::tcp::TCP

source ·
pub struct TCP {
+TCP in os::net::tcp - Rust

Struct os::net::tcp::TCP

source ·
pub struct TCP {
     pub target: IPv4,
     pub sport: u16,
     pub dport: u16,
     pub seq: u32,
     pub ack: u32,
     pub socket_index: usize,
-}

Fields§

§target: IPv4§sport: u16§dport: u16§seq: u32§ack: u32§socket_index: usize

Implementations§

source§

impl TCP

source

pub fn new(target: IPv4, sport: u16, dport: u16, seq: u32, ack: u32) -> Self

Trait Implementations§

source§

impl Drop for TCP

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl File for TCP

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl RefUnwindSafe for TCP

§

impl Send for TCP

§

impl Sync for TCP

§

impl Unpin for TCP

§

impl UnwindSafe for TCP

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§target: IPv4§sport: u16§dport: u16§seq: u32§ack: u32§socket_index: usize

Implementations§

source§

impl TCP

source

pub fn new(target: IPv4, sport: u16, dport: u16, seq: u32, ack: u32) -> Self

Trait Implementations§

source§

impl Drop for TCP

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl File for TCP

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl Freeze for TCP

§

impl RefUnwindSafe for TCP

§

impl Send for TCP

§

impl Sync for TCP

§

impl Unpin for TCP

§

impl UnwindSafe for TCP

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/net/udp/index.html b/main/os/net/udp/index.html index 5ac1612c..863adb04 100644 --- a/main/os/net/udp/index.html +++ b/main/os/net/udp/index.html @@ -1,2 +1 @@ -os::net::udp - Rust -

Module os::net::udp

source ·

Structs

\ No newline at end of file +os::net::udp - Rust

Module os::net::udp

source ·

Structs§

\ No newline at end of file diff --git a/main/os/net/udp/struct.UDP.html b/main/os/net/udp/struct.UDP.html index b063ef39..5bc766e0 100644 --- a/main/os/net/udp/struct.UDP.html +++ b/main/os/net/udp/struct.UDP.html @@ -1,28 +1,27 @@ -UDP in os::net::udp - Rust -

Struct os::net::udp::UDP

source ·
pub struct UDP {
+UDP in os::net::udp - Rust

Struct os::net::udp::UDP

source ·
pub struct UDP {
     pub target: IPv4,
     pub sport: u16,
     pub dport: u16,
     pub socket_index: usize,
-}

Fields§

§target: IPv4§sport: u16§dport: u16§socket_index: usize

Implementations§

source§

impl UDP

source

pub fn new(target: IPv4, sport: u16, dport: u16) -> Self

Trait Implementations§

source§

impl Drop for UDP

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl File for UDP

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl RefUnwindSafe for UDP

§

impl Send for UDP

§

impl Sync for UDP

§

impl Unpin for UDP

§

impl UnwindSafe for UDP

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§target: IPv4§sport: u16§dport: u16§socket_index: usize

Implementations§

source§

impl UDP

source

pub fn new(target: IPv4, sport: u16, dport: u16) -> Self

Trait Implementations§

source§

impl Drop for UDP

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl File for UDP

source§

fn readable(&self) -> bool

source§

fn writable(&self) -> bool

source§

fn read(&self, buf: UserBuffer) -> usize

source§

fn write(&self, buf: UserBuffer) -> usize

Auto Trait Implementations§

§

impl Freeze for UDP

§

impl RefUnwindSafe for UDP

§

impl Send for UDP

§

impl Sync for UDP

§

impl Unpin for UDP

§

impl UnwindSafe for UDP

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sbi/fn.set_timer.html b/main/os/sbi/fn.set_timer.html index ba2377c9..72b50bff 100644 --- a/main/os/sbi/fn.set_timer.html +++ b/main/os/sbi/fn.set_timer.html @@ -1,3 +1,2 @@ -set_timer in os::sbi - Rust -

Function os::sbi::set_timer

source ·
pub fn set_timer(timer: usize)
Expand description

use sbi call to set timer

+set_timer in os::sbi - Rust

Function os::sbi::set_timer

source ·
pub fn set_timer(timer: usize)
Expand description

use sbi call to set timer

\ No newline at end of file diff --git a/main/os/sbi/fn.shutdown.html b/main/os/sbi/fn.shutdown.html index e5419fc7..7e505959 100644 --- a/main/os/sbi/fn.shutdown.html +++ b/main/os/sbi/fn.shutdown.html @@ -1,3 +1,2 @@ -shutdown in os::sbi - Rust -

Function os::sbi::shutdown

source ·
pub fn shutdown(failure: bool) -> !
Expand description

use sbi call to shutdown the kernel

+shutdown in os::sbi - Rust

Function os::sbi::shutdown

source ·
pub fn shutdown(failure: bool) -> !
Expand description

use sbi call to shutdown the kernel

\ No newline at end of file diff --git a/main/os/sbi/index.html b/main/os/sbi/index.html index d31ad349..32676b07 100644 --- a/main/os/sbi/index.html +++ b/main/os/sbi/index.html @@ -1,2 +1 @@ -os::sbi - Rust -

Module os::sbi

source ·

Functions

\ No newline at end of file +os::sbi - Rust

Module os::sbi

source ·

Functions§

\ No newline at end of file diff --git a/main/os/struct.DEV_NON_BLOCKING_ACCESS.html b/main/os/struct.DEV_NON_BLOCKING_ACCESS.html index ca63e78f..d9bc4d1f 100644 --- a/main/os/struct.DEV_NON_BLOCKING_ACCESS.html +++ b/main/os/struct.DEV_NON_BLOCKING_ACCESS.html @@ -1,27 +1,26 @@ -DEV_NON_BLOCKING_ACCESS in os - Rust -
pub struct DEV_NON_BLOCKING_ACCESS {
+DEV_NON_BLOCKING_ACCESS in os - Rust

Struct os::DEV_NON_BLOCKING_ACCESS

source ·
pub struct DEV_NON_BLOCKING_ACCESS {
     pub(crate) __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<bool>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for DEV_NON_BLOCKING_ACCESS

§

type Target = UPIntrFreeCell<bool>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<bool>

Dereferences the value.
source§

impl LazyStatic for DEV_NON_BLOCKING_ACCESS

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for DEV_NON_BLOCKING_ACCESS

§

type Target = UPIntrFreeCell<bool>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<bool>

Dereferences the value.
source§

impl LazyStatic for DEV_NON_BLOCKING_ACCESS

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/condvar/index.html b/main/os/sync/condvar/index.html index b022b5f7..91c96505 100644 --- a/main/os/sync/condvar/index.html +++ b/main/os/sync/condvar/index.html @@ -1,2 +1 @@ -os::sync::condvar - Rust -
\ No newline at end of file +os::sync::condvar - Rust

Module os::sync::condvar

source ·

Structs§

\ No newline at end of file diff --git a/main/os/sync/condvar/struct.Condvar.html b/main/os/sync/condvar/struct.Condvar.html index 385dc004..47648b6e 100644 --- a/main/os/sync/condvar/struct.Condvar.html +++ b/main/os/sync/condvar/struct.Condvar.html @@ -1,25 +1,24 @@ -Condvar in os::sync::condvar - Rust -

Struct os::sync::condvar::Condvar

source ·
pub struct Condvar {
+Condvar in os::sync::condvar - Rust

Struct os::sync::condvar::Condvar

source ·
pub struct Condvar {
     pub inner: UPIntrFreeCell<CondvarInner>,
-}

Fields§

§inner: UPIntrFreeCell<CondvarInner>

Implementations§

source§

impl Condvar

source

pub fn new() -> Self

source

pub fn signal(&self)

source

pub fn wait_no_sched(&self) -> *mut TaskContext

source

pub fn wait_with_mutex(&self, mutex: Arc<dyn Mutex>)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§inner: UPIntrFreeCell<CondvarInner>

Implementations§

source§

impl Condvar

source

pub fn new() -> Self

source

pub fn signal(&self)

source

pub fn wait_no_sched(&self) -> *mut TaskContext

source

pub fn wait_with_mutex(&self, mutex: Arc<dyn Mutex>)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/condvar/struct.CondvarInner.html b/main/os/sync/condvar/struct.CondvarInner.html index dd20071b..6e0d40b5 100644 --- a/main/os/sync/condvar/struct.CondvarInner.html +++ b/main/os/sync/condvar/struct.CondvarInner.html @@ -1,25 +1,24 @@ -CondvarInner in os::sync::condvar - Rust -

Struct os::sync::condvar::CondvarInner

source ·
pub struct CondvarInner {
+CondvarInner in os::sync::condvar - Rust

Struct os::sync::condvar::CondvarInner

source ·
pub struct CondvarInner {
     pub wait_queue: VecDeque<Arc<TaskControlBlock>>,
-}

Fields§

§wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/index.html b/main/os/sync/index.html index dccacb9b..e34d6fd7 100644 --- a/main/os/sync/index.html +++ b/main/os/sync/index.html @@ -1,2 +1 @@ -os::sync - Rust -

Module os::sync

source ·

Re-exports

Modules

\ No newline at end of file +os::sync - Rust

Module os::sync

source ·

Re-exports§

Modules§

\ No newline at end of file diff --git a/main/os/sync/mutex/index.html b/main/os/sync/mutex/index.html index 947b44cf..c6b7131c 100644 --- a/main/os/sync/mutex/index.html +++ b/main/os/sync/mutex/index.html @@ -1,2 +1 @@ -os::sync::mutex - Rust -
\ No newline at end of file +os::sync::mutex - Rust
\ No newline at end of file diff --git a/main/os/sync/mutex/struct.MutexBlocking.html b/main/os/sync/mutex/struct.MutexBlocking.html index d9ec65cc..53b4489c 100644 --- a/main/os/sync/mutex/struct.MutexBlocking.html +++ b/main/os/sync/mutex/struct.MutexBlocking.html @@ -1,25 +1,24 @@ -MutexBlocking in os::sync::mutex - Rust -

Struct os::sync::mutex::MutexBlocking

source ·
pub struct MutexBlocking {
+MutexBlocking in os::sync::mutex - Rust

Struct os::sync::mutex::MutexBlocking

source ·
pub struct MutexBlocking {
     inner: UPIntrFreeCell<MutexBlockingInner>,
-}

Fields§

§inner: UPIntrFreeCell<MutexBlockingInner>

Implementations§

source§

impl MutexBlocking

source

pub fn new() -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§inner: UPIntrFreeCell<MutexBlockingInner>

Implementations§

source§

impl MutexBlocking

source

pub fn new() -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/mutex/struct.MutexBlockingInner.html b/main/os/sync/mutex/struct.MutexBlockingInner.html index ba55acb4..0d3e29de 100644 --- a/main/os/sync/mutex/struct.MutexBlockingInner.html +++ b/main/os/sync/mutex/struct.MutexBlockingInner.html @@ -1,26 +1,25 @@ -MutexBlockingInner in os::sync::mutex - Rust -
pub struct MutexBlockingInner {
+MutexBlockingInner in os::sync::mutex - Rust

Struct os::sync::mutex::MutexBlockingInner

source ·
pub struct MutexBlockingInner {
     locked: bool,
     wait_queue: VecDeque<Arc<TaskControlBlock>>,
-}

Fields§

§locked: bool§wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§locked: bool§wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/mutex/struct.MutexSpin.html b/main/os/sync/mutex/struct.MutexSpin.html index 89b12e57..1dcd2a57 100644 --- a/main/os/sync/mutex/struct.MutexSpin.html +++ b/main/os/sync/mutex/struct.MutexSpin.html @@ -1,25 +1,24 @@ -MutexSpin in os::sync::mutex - Rust -

Struct os::sync::mutex::MutexSpin

source ·
pub struct MutexSpin {
+MutexSpin in os::sync::mutex - Rust

Struct os::sync::mutex::MutexSpin

source ·
pub struct MutexSpin {
     locked: UPIntrFreeCell<bool>,
-}

Fields§

§locked: UPIntrFreeCell<bool>

Implementations§

source§

impl MutexSpin

source

pub fn new() -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§locked: UPIntrFreeCell<bool>

Implementations§

source§

impl MutexSpin

source

pub fn new() -> Self

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/mutex/trait.Mutex.html b/main/os/sync/mutex/trait.Mutex.html index 737c3049..4df47867 100644 --- a/main/os/sync/mutex/trait.Mutex.html +++ b/main/os/sync/mutex/trait.Mutex.html @@ -1,5 +1,4 @@ -Mutex in os::sync::mutex - Rust -

Trait os::sync::mutex::Mutex

source ·
pub trait Mutex: Sync + Send {
+Mutex in os::sync::mutex - Rust

Trait os::sync::mutex::Mutex

source ·
pub trait Mutex: Sync + Send {
     // Required methods
     fn lock(&self);
     fn unlock(&self);
diff --git a/main/os/sync/semaphore/index.html b/main/os/sync/semaphore/index.html
index 41b05073..c176473e 100644
--- a/main/os/sync/semaphore/index.html
+++ b/main/os/sync/semaphore/index.html
@@ -1,2 +1 @@
-os::sync::semaphore - Rust
-    
\ No newline at end of file +os::sync::semaphore - Rust

Module os::sync::semaphore

source ·

Structs§

\ No newline at end of file diff --git a/main/os/sync/semaphore/struct.Semaphore.html b/main/os/sync/semaphore/struct.Semaphore.html index 55f981f8..7903bd83 100644 --- a/main/os/sync/semaphore/struct.Semaphore.html +++ b/main/os/sync/semaphore/struct.Semaphore.html @@ -1,25 +1,24 @@ -Semaphore in os::sync::semaphore - Rust -

Struct os::sync::semaphore::Semaphore

source ·
pub struct Semaphore {
+Semaphore in os::sync::semaphore - Rust

Struct os::sync::semaphore::Semaphore

source ·
pub struct Semaphore {
     pub inner: UPIntrFreeCell<SemaphoreInner>,
-}

Fields§

§inner: UPIntrFreeCell<SemaphoreInner>

Implementations§

source§

impl Semaphore

source

pub fn new(res_count: usize) -> Self

source

pub fn up(&self)

source

pub fn down(&self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§inner: UPIntrFreeCell<SemaphoreInner>

Implementations§

source§

impl Semaphore

source

pub fn new(res_count: usize) -> Self

source

pub fn up(&self)

source

pub fn down(&self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/semaphore/struct.SemaphoreInner.html b/main/os/sync/semaphore/struct.SemaphoreInner.html index 6bfa7aa4..7ac619ef 100644 --- a/main/os/sync/semaphore/struct.SemaphoreInner.html +++ b/main/os/sync/semaphore/struct.SemaphoreInner.html @@ -1,26 +1,25 @@ -SemaphoreInner in os::sync::semaphore - Rust -
pub struct SemaphoreInner {
+SemaphoreInner in os::sync::semaphore - Rust

Struct os::sync::semaphore::SemaphoreInner

source ·
pub struct SemaphoreInner {
     pub count: isize,
     pub wait_queue: VecDeque<Arc<TaskControlBlock>>,
-}

Fields§

§count: isize§wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§count: isize§wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/up/index.html b/main/os/sync/up/index.html index 184f4fd4..77b05533 100644 --- a/main/os/sync/up/index.html +++ b/main/os/sync/up/index.html @@ -1,2 +1 @@ -os::sync::up - Rust -
\ No newline at end of file +os::sync::up - Rust
\ No newline at end of file diff --git a/main/os/sync/up/struct.INTR_MASKING_INFO.html b/main/os/sync/up/struct.INTR_MASKING_INFO.html index ee9aeab5..ada4508f 100644 --- a/main/os/sync/up/struct.INTR_MASKING_INFO.html +++ b/main/os/sync/up/struct.INTR_MASKING_INFO.html @@ -1,25 +1,24 @@ -INTR_MASKING_INFO in os::sync::up - Rust -

Struct os::sync::up::INTR_MASKING_INFO

source ·
struct INTR_MASKING_INFO {
+INTR_MASKING_INFO in os::sync::up - Rust

Struct os::sync::up::INTR_MASKING_INFO

source ·
struct INTR_MASKING_INFO {
     __private_field: (),
-}

Fields§

§__private_field: ()

Methods from Deref<Target = UPSafeCellRaw<IntrMaskingInfo>>§

source

pub fn get_mut(&self) -> &mut T

Trait Implementations§

source§

impl Deref for INTR_MASKING_INFO

§

type Target = UPSafeCellRaw<IntrMaskingInfo>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPSafeCellRaw<IntrMaskingInfo>

Dereferences the value.
source§

impl LazyStatic for INTR_MASKING_INFO

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Methods from Deref<Target = UPSafeCellRaw<IntrMaskingInfo>>§

source

pub fn get_mut(&self) -> &mut T

Trait Implementations§

source§

impl Deref for INTR_MASKING_INFO

§

type Target = UPSafeCellRaw<IntrMaskingInfo>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPSafeCellRaw<IntrMaskingInfo>

Dereferences the value.
source§

impl LazyStatic for INTR_MASKING_INFO

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/up/struct.IntrMaskingInfo.html b/main/os/sync/up/struct.IntrMaskingInfo.html index 41746f05..09301e9f 100644 --- a/main/os/sync/up/struct.IntrMaskingInfo.html +++ b/main/os/sync/up/struct.IntrMaskingInfo.html @@ -1,26 +1,25 @@ -IntrMaskingInfo in os::sync::up - Rust -

Struct os::sync::up::IntrMaskingInfo

source ·
pub struct IntrMaskingInfo {
+IntrMaskingInfo in os::sync::up - Rust

Struct os::sync::up::IntrMaskingInfo

source ·
pub struct IntrMaskingInfo {
     nested_level: usize,
     sie_before_masking: bool,
-}

Fields§

§nested_level: usize§sie_before_masking: bool

Implementations§

source§

impl IntrMaskingInfo

source

pub fn new() -> Self

source

pub fn enter(&mut self)

source

pub fn exit(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§nested_level: usize§sie_before_masking: bool

Implementations§

source§

impl IntrMaskingInfo

source

pub fn new() -> Self

source

pub fn enter(&mut self)

source

pub fn exit(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/up/struct.UPIntrFreeCell.html b/main/os/sync/up/struct.UPIntrFreeCell.html index 81ad729c..51da4158 100644 --- a/main/os/sync/up/struct.UPIntrFreeCell.html +++ b/main/os/sync/up/struct.UPIntrFreeCell.html @@ -1,10 +1,9 @@ -UPIntrFreeCell in os::sync::up - Rust -

Struct os::sync::up::UPIntrFreeCell

source ·
pub struct UPIntrFreeCell<T> {
+UPIntrFreeCell in os::sync::up - Rust

Struct os::sync::up::UPIntrFreeCell

source ·
pub struct UPIntrFreeCell<T> {
     inner: RefCell<T>,
 }

Fields§

§inner: RefCell<T>

inner data

Implementations§

source§

impl<T> UPIntrFreeCell<T>

source

pub unsafe fn new(value: T) -> Self

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for UPIntrFreeCell<T>

§

impl<T> Send for UPIntrFreeCell<T>
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

Auto Trait Implementations§

§

impl<T> !Freeze for UPIntrFreeCell<T>

§

impl<T> !RefUnwindSafe for UPIntrFreeCell<T>

§

impl<T> Send for UPIntrFreeCell<T>
where T: Send,

§

impl<T> Unpin for UPIntrFreeCell<T>
where T: Unpin,

§

impl<T> UnwindSafe for UPIntrFreeCell<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where @@ -14,18 +13,18 @@ T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/up/struct.UPIntrRefMut.html b/main/os/sync/up/struct.UPIntrRefMut.html index 9421aa24..746d47c1 100644 --- a/main/os/sync/up/struct.UPIntrRefMut.html +++ b/main/os/sync/up/struct.UPIntrRefMut.html @@ -1,23 +1,22 @@ -UPIntrRefMut in os::sync::up - Rust -

Struct os::sync::up::UPIntrRefMut

source ·
pub struct UPIntrRefMut<'a, T>(Option<RefMut<'a, T>>);

Tuple Fields§

§0: Option<RefMut<'a, T>>

Trait Implementations§

source§

impl<'a, T> DerefMut for UPIntrRefMut<'a, T>

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<'a, T> Drop for UPIntrRefMut<'a, T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a, T> Deref for UPIntrRefMut<'a, T>

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'a, T> !RefUnwindSafe for UPIntrRefMut<'a, T>

§

impl<'a, T> !Send for UPIntrRefMut<'a, T>

§

impl<'a, T> !Sync for UPIntrRefMut<'a, T>

§

impl<'a, T> Unpin for UPIntrRefMut<'a, T>

§

impl<'a, T> !UnwindSafe for UPIntrRefMut<'a, T>

Blanket Implementations§

source§

impl<T> Any for T
where +UPIntrRefMut in os::sync::up - Rust

Struct os::sync::up::UPIntrRefMut

source ·
pub struct UPIntrRefMut<'a, T>(Option<RefMut<'a, T>>);

Tuple Fields§

§0: Option<RefMut<'a, T>>

Trait Implementations§

source§

impl<'a, T> DerefMut for UPIntrRefMut<'a, T>

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<'a, T> Drop for UPIntrRefMut<'a, T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a, T> Deref for UPIntrRefMut<'a, T>

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'a, T> Freeze for UPIntrRefMut<'a, T>

§

impl<'a, T> !RefUnwindSafe for UPIntrRefMut<'a, T>

§

impl<'a, T> !Send for UPIntrRefMut<'a, T>

§

impl<'a, T> !Sync for UPIntrRefMut<'a, T>

§

impl<'a, T> Unpin for UPIntrRefMut<'a, T>

§

impl<'a, T> !UnwindSafe for UPIntrRefMut<'a, T>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/sync/up/struct.UPSafeCellRaw.html b/main/os/sync/up/struct.UPSafeCellRaw.html index 42414117..bdce0419 100644 --- a/main/os/sync/up/struct.UPSafeCellRaw.html +++ b/main/os/sync/up/struct.UPSafeCellRaw.html @@ -1,7 +1,6 @@ -UPSafeCellRaw in os::sync::up - Rust -

Struct os::sync::up::UPSafeCellRaw

source ·
pub struct UPSafeCellRaw<T> {
+UPSafeCellRaw in os::sync::up - Rust

Struct os::sync::up::UPSafeCellRaw

source ·
pub struct UPSafeCellRaw<T> {
     inner: UnsafeCell<T>,
-}

Fields§

§inner: UnsafeCell<T>

Implementations§

source§

impl<T> UPSafeCellRaw<T>

source

pub unsafe fn new(value: T) -> Self

source

pub fn get_mut(&self) -> &mut T

Trait Implementations§

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for UPSafeCellRaw<T>

§

impl<T> Send for UPSafeCellRaw<T>
where +}

Fields§

§inner: UnsafeCell<T>

Implementations§

source§

impl<T> UPSafeCellRaw<T>

source

pub unsafe fn new(value: T) -> Self

source

pub fn get_mut(&self) -> &mut T

Trait Implementations§

Auto Trait Implementations§

§

impl<T> !Freeze for UPSafeCellRaw<T>

§

impl<T> !RefUnwindSafe for UPSafeCellRaw<T>

§

impl<T> Send for UPSafeCellRaw<T>
where T: Send,

§

impl<T> Unpin for UPSafeCellRaw<T>
where T: Unpin,

§

impl<T> UnwindSafe for UPSafeCellRaw<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where @@ -11,18 +10,18 @@ T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/syscall/constant.SYSCALL_ACCEPT.html b/main/os/syscall/constant.SYSCALL_ACCEPT.html index 746db602..c20150da 100644 --- a/main/os/syscall/constant.SYSCALL_ACCEPT.html +++ b/main/os/syscall/constant.SYSCALL_ACCEPT.html @@ -1,2 +1 @@ -SYSCALL_ACCEPT in os::syscall - Rust -

Constant os::syscall::SYSCALL_ACCEPT

source ·
const SYSCALL_ACCEPT: usize = 31;
\ No newline at end of file +SYSCALL_ACCEPT in os::syscall - Rust

Constant os::syscall::SYSCALL_ACCEPT

source ·
const SYSCALL_ACCEPT: usize = 31;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_CLOSE.html b/main/os/syscall/constant.SYSCALL_CLOSE.html index 53b28433..9be15ea4 100644 --- a/main/os/syscall/constant.SYSCALL_CLOSE.html +++ b/main/os/syscall/constant.SYSCALL_CLOSE.html @@ -1,2 +1 @@ -SYSCALL_CLOSE in os::syscall - Rust -

Constant os::syscall::SYSCALL_CLOSE

source ·
const SYSCALL_CLOSE: usize = 57;
\ No newline at end of file +SYSCALL_CLOSE in os::syscall - Rust

Constant os::syscall::SYSCALL_CLOSE

source ·
const SYSCALL_CLOSE: usize = 57;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html b/main/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html index a59616e5..2ca05c43 100644 --- a/main/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html +++ b/main/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html @@ -1,2 +1 @@ -SYSCALL_CONDVAR_CREATE in os::syscall - Rust -
const SYSCALL_CONDVAR_CREATE: usize = 1030;
\ No newline at end of file +SYSCALL_CONDVAR_CREATE in os::syscall - Rust

Constant os::syscall::SYSCALL_CONDVAR_CREATE

source ·
const SYSCALL_CONDVAR_CREATE: usize = 1030;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html b/main/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html index b0924306..cbfe968c 100644 --- a/main/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html +++ b/main/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html @@ -1,2 +1 @@ -SYSCALL_CONDVAR_SIGNAL in os::syscall - Rust -
const SYSCALL_CONDVAR_SIGNAL: usize = 1031;
\ No newline at end of file +SYSCALL_CONDVAR_SIGNAL in os::syscall - Rust

Constant os::syscall::SYSCALL_CONDVAR_SIGNAL

source ·
const SYSCALL_CONDVAR_SIGNAL: usize = 1031;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html b/main/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html index 3237d828..3484a399 100644 --- a/main/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html +++ b/main/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html @@ -1,2 +1 @@ -SYSCALL_CONDVAR_WAIT in os::syscall - Rust -
const SYSCALL_CONDVAR_WAIT: usize = 1032;
\ No newline at end of file +SYSCALL_CONDVAR_WAIT in os::syscall - Rust

Constant os::syscall::SYSCALL_CONDVAR_WAIT

source ·
const SYSCALL_CONDVAR_WAIT: usize = 1032;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_CONNECT.html b/main/os/syscall/constant.SYSCALL_CONNECT.html index a10da0b3..489ece8f 100644 --- a/main/os/syscall/constant.SYSCALL_CONNECT.html +++ b/main/os/syscall/constant.SYSCALL_CONNECT.html @@ -1,2 +1 @@ -SYSCALL_CONNECT in os::syscall - Rust -

Constant os::syscall::SYSCALL_CONNECT

source ·
const SYSCALL_CONNECT: usize = 29;
\ No newline at end of file +SYSCALL_CONNECT in os::syscall - Rust

Constant os::syscall::SYSCALL_CONNECT

source ·
const SYSCALL_CONNECT: usize = 29;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_DUP.html b/main/os/syscall/constant.SYSCALL_DUP.html index 54e088cd..0166d306 100644 --- a/main/os/syscall/constant.SYSCALL_DUP.html +++ b/main/os/syscall/constant.SYSCALL_DUP.html @@ -1,2 +1 @@ -SYSCALL_DUP in os::syscall - Rust -

Constant os::syscall::SYSCALL_DUP

source ·
const SYSCALL_DUP: usize = 24;
\ No newline at end of file +SYSCALL_DUP in os::syscall - Rust

Constant os::syscall::SYSCALL_DUP

source ·
const SYSCALL_DUP: usize = 24;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_EVENT_GET.html b/main/os/syscall/constant.SYSCALL_EVENT_GET.html index 830be8fa..d0e98f70 100644 --- a/main/os/syscall/constant.SYSCALL_EVENT_GET.html +++ b/main/os/syscall/constant.SYSCALL_EVENT_GET.html @@ -1,2 +1 @@ -SYSCALL_EVENT_GET in os::syscall - Rust -

Constant os::syscall::SYSCALL_EVENT_GET

source ·
const SYSCALL_EVENT_GET: usize = 3000;
\ No newline at end of file +SYSCALL_EVENT_GET in os::syscall - Rust

Constant os::syscall::SYSCALL_EVENT_GET

source ·
const SYSCALL_EVENT_GET: usize = 3000;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_EXEC.html b/main/os/syscall/constant.SYSCALL_EXEC.html index 1fff1f18..c82ec534 100644 --- a/main/os/syscall/constant.SYSCALL_EXEC.html +++ b/main/os/syscall/constant.SYSCALL_EXEC.html @@ -1,2 +1 @@ -SYSCALL_EXEC in os::syscall - Rust -

Constant os::syscall::SYSCALL_EXEC

source ·
const SYSCALL_EXEC: usize = 221;
\ No newline at end of file +SYSCALL_EXEC in os::syscall - Rust

Constant os::syscall::SYSCALL_EXEC

source ·
const SYSCALL_EXEC: usize = 221;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_EXIT.html b/main/os/syscall/constant.SYSCALL_EXIT.html index 76f5fdb2..41e17a1c 100644 --- a/main/os/syscall/constant.SYSCALL_EXIT.html +++ b/main/os/syscall/constant.SYSCALL_EXIT.html @@ -1,2 +1 @@ -SYSCALL_EXIT in os::syscall - Rust -

Constant os::syscall::SYSCALL_EXIT

source ·
const SYSCALL_EXIT: usize = 93;
\ No newline at end of file +SYSCALL_EXIT in os::syscall - Rust

Constant os::syscall::SYSCALL_EXIT

source ·
const SYSCALL_EXIT: usize = 93;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_FORK.html b/main/os/syscall/constant.SYSCALL_FORK.html index 53068ea3..8244e7c2 100644 --- a/main/os/syscall/constant.SYSCALL_FORK.html +++ b/main/os/syscall/constant.SYSCALL_FORK.html @@ -1,2 +1 @@ -SYSCALL_FORK in os::syscall - Rust -

Constant os::syscall::SYSCALL_FORK

source ·
const SYSCALL_FORK: usize = 220;
\ No newline at end of file +SYSCALL_FORK in os::syscall - Rust

Constant os::syscall::SYSCALL_FORK

source ·
const SYSCALL_FORK: usize = 220;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_FRAMEBUFFER.html b/main/os/syscall/constant.SYSCALL_FRAMEBUFFER.html index 98b88aaa..91d61900 100644 --- a/main/os/syscall/constant.SYSCALL_FRAMEBUFFER.html +++ b/main/os/syscall/constant.SYSCALL_FRAMEBUFFER.html @@ -1,2 +1 @@ -SYSCALL_FRAMEBUFFER in os::syscall - Rust -
const SYSCALL_FRAMEBUFFER: usize = 2000;
\ No newline at end of file +SYSCALL_FRAMEBUFFER in os::syscall - Rust

Constant os::syscall::SYSCALL_FRAMEBUFFER

source ·
const SYSCALL_FRAMEBUFFER: usize = 2000;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_FRAMEBUFFER_FLUSH.html b/main/os/syscall/constant.SYSCALL_FRAMEBUFFER_FLUSH.html index e963beec..8852a80b 100644 --- a/main/os/syscall/constant.SYSCALL_FRAMEBUFFER_FLUSH.html +++ b/main/os/syscall/constant.SYSCALL_FRAMEBUFFER_FLUSH.html @@ -1,2 +1 @@ -SYSCALL_FRAMEBUFFER_FLUSH in os::syscall - Rust -
const SYSCALL_FRAMEBUFFER_FLUSH: usize = 2001;
\ No newline at end of file +SYSCALL_FRAMEBUFFER_FLUSH in os::syscall - Rust

Constant os::syscall::SYSCALL_FRAMEBUFFER_FLUSH

source ·
const SYSCALL_FRAMEBUFFER_FLUSH: usize = 2001;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_GETPID.html b/main/os/syscall/constant.SYSCALL_GETPID.html index e04f4afd..07477d79 100644 --- a/main/os/syscall/constant.SYSCALL_GETPID.html +++ b/main/os/syscall/constant.SYSCALL_GETPID.html @@ -1,2 +1 @@ -SYSCALL_GETPID in os::syscall - Rust -

Constant os::syscall::SYSCALL_GETPID

source ·
const SYSCALL_GETPID: usize = 172;
\ No newline at end of file +SYSCALL_GETPID in os::syscall - Rust

Constant os::syscall::SYSCALL_GETPID

source ·
const SYSCALL_GETPID: usize = 172;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_GETTID.html b/main/os/syscall/constant.SYSCALL_GETTID.html index 6dd042ec..751e5acf 100644 --- a/main/os/syscall/constant.SYSCALL_GETTID.html +++ b/main/os/syscall/constant.SYSCALL_GETTID.html @@ -1,2 +1 @@ -SYSCALL_GETTID in os::syscall - Rust -

Constant os::syscall::SYSCALL_GETTID

source ·
const SYSCALL_GETTID: usize = 1001;
\ No newline at end of file +SYSCALL_GETTID in os::syscall - Rust

Constant os::syscall::SYSCALL_GETTID

source ·
const SYSCALL_GETTID: usize = 1001;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_GET_TIME.html b/main/os/syscall/constant.SYSCALL_GET_TIME.html index de0b6fcb..bbe39ed8 100644 --- a/main/os/syscall/constant.SYSCALL_GET_TIME.html +++ b/main/os/syscall/constant.SYSCALL_GET_TIME.html @@ -1,2 +1 @@ -SYSCALL_GET_TIME in os::syscall - Rust -

Constant os::syscall::SYSCALL_GET_TIME

source ·
const SYSCALL_GET_TIME: usize = 169;
\ No newline at end of file +SYSCALL_GET_TIME in os::syscall - Rust

Constant os::syscall::SYSCALL_GET_TIME

source ·
const SYSCALL_GET_TIME: usize = 169;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_KEY_PRESSED.html b/main/os/syscall/constant.SYSCALL_KEY_PRESSED.html index 68549afb..e707cdeb 100644 --- a/main/os/syscall/constant.SYSCALL_KEY_PRESSED.html +++ b/main/os/syscall/constant.SYSCALL_KEY_PRESSED.html @@ -1,2 +1 @@ -SYSCALL_KEY_PRESSED in os::syscall - Rust -
const SYSCALL_KEY_PRESSED: usize = 3001;
\ No newline at end of file +SYSCALL_KEY_PRESSED in os::syscall - Rust

Constant os::syscall::SYSCALL_KEY_PRESSED

source ·
const SYSCALL_KEY_PRESSED: usize = 3001;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_KILL.html b/main/os/syscall/constant.SYSCALL_KILL.html index d5083b50..a4ac39f9 100644 --- a/main/os/syscall/constant.SYSCALL_KILL.html +++ b/main/os/syscall/constant.SYSCALL_KILL.html @@ -1,2 +1 @@ -SYSCALL_KILL in os::syscall - Rust -

Constant os::syscall::SYSCALL_KILL

source ·
const SYSCALL_KILL: usize = 129;
\ No newline at end of file +SYSCALL_KILL in os::syscall - Rust

Constant os::syscall::SYSCALL_KILL

source ·
const SYSCALL_KILL: usize = 129;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_LISTEN.html b/main/os/syscall/constant.SYSCALL_LISTEN.html index 80b8c6f2..d80dbfcc 100644 --- a/main/os/syscall/constant.SYSCALL_LISTEN.html +++ b/main/os/syscall/constant.SYSCALL_LISTEN.html @@ -1,2 +1 @@ -SYSCALL_LISTEN in os::syscall - Rust -

Constant os::syscall::SYSCALL_LISTEN

source ·
const SYSCALL_LISTEN: usize = 30;
\ No newline at end of file +SYSCALL_LISTEN in os::syscall - Rust

Constant os::syscall::SYSCALL_LISTEN

source ·
const SYSCALL_LISTEN: usize = 30;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_MUTEX_CREATE.html b/main/os/syscall/constant.SYSCALL_MUTEX_CREATE.html index 1f3f90a1..b6a25317 100644 --- a/main/os/syscall/constant.SYSCALL_MUTEX_CREATE.html +++ b/main/os/syscall/constant.SYSCALL_MUTEX_CREATE.html @@ -1,2 +1 @@ -SYSCALL_MUTEX_CREATE in os::syscall - Rust -
const SYSCALL_MUTEX_CREATE: usize = 1010;
\ No newline at end of file +SYSCALL_MUTEX_CREATE in os::syscall - Rust

Constant os::syscall::SYSCALL_MUTEX_CREATE

source ·
const SYSCALL_MUTEX_CREATE: usize = 1010;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_MUTEX_LOCK.html b/main/os/syscall/constant.SYSCALL_MUTEX_LOCK.html index 0d249569..c6a55810 100644 --- a/main/os/syscall/constant.SYSCALL_MUTEX_LOCK.html +++ b/main/os/syscall/constant.SYSCALL_MUTEX_LOCK.html @@ -1,2 +1 @@ -SYSCALL_MUTEX_LOCK in os::syscall - Rust -

Constant os::syscall::SYSCALL_MUTEX_LOCK

source ·
const SYSCALL_MUTEX_LOCK: usize = 1011;
\ No newline at end of file +SYSCALL_MUTEX_LOCK in os::syscall - Rust

Constant os::syscall::SYSCALL_MUTEX_LOCK

source ·
const SYSCALL_MUTEX_LOCK: usize = 1011;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html b/main/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html index 449a4647..f9ff7e5f 100644 --- a/main/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html +++ b/main/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html @@ -1,2 +1 @@ -SYSCALL_MUTEX_UNLOCK in os::syscall - Rust -
const SYSCALL_MUTEX_UNLOCK: usize = 1012;
\ No newline at end of file +SYSCALL_MUTEX_UNLOCK in os::syscall - Rust

Constant os::syscall::SYSCALL_MUTEX_UNLOCK

source ·
const SYSCALL_MUTEX_UNLOCK: usize = 1012;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_OPEN.html b/main/os/syscall/constant.SYSCALL_OPEN.html index e46f8c6c..3b167f28 100644 --- a/main/os/syscall/constant.SYSCALL_OPEN.html +++ b/main/os/syscall/constant.SYSCALL_OPEN.html @@ -1,2 +1 @@ -SYSCALL_OPEN in os::syscall - Rust -

Constant os::syscall::SYSCALL_OPEN

source ·
const SYSCALL_OPEN: usize = 56;
\ No newline at end of file +SYSCALL_OPEN in os::syscall - Rust

Constant os::syscall::SYSCALL_OPEN

source ·
const SYSCALL_OPEN: usize = 56;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_PIPE.html b/main/os/syscall/constant.SYSCALL_PIPE.html index 21068034..4c12c2d3 100644 --- a/main/os/syscall/constant.SYSCALL_PIPE.html +++ b/main/os/syscall/constant.SYSCALL_PIPE.html @@ -1,2 +1 @@ -SYSCALL_PIPE in os::syscall - Rust -

Constant os::syscall::SYSCALL_PIPE

source ·
const SYSCALL_PIPE: usize = 59;
\ No newline at end of file +SYSCALL_PIPE in os::syscall - Rust

Constant os::syscall::SYSCALL_PIPE

source ·
const SYSCALL_PIPE: usize = 59;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_READ.html b/main/os/syscall/constant.SYSCALL_READ.html index 4f80656d..8aa3fa50 100644 --- a/main/os/syscall/constant.SYSCALL_READ.html +++ b/main/os/syscall/constant.SYSCALL_READ.html @@ -1,2 +1 @@ -SYSCALL_READ in os::syscall - Rust -

Constant os::syscall::SYSCALL_READ

source ·
const SYSCALL_READ: usize = 63;
\ No newline at end of file +SYSCALL_READ in os::syscall - Rust

Constant os::syscall::SYSCALL_READ

source ·
const SYSCALL_READ: usize = 63;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html b/main/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html index cfc6787e..a1a86d91 100644 --- a/main/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html +++ b/main/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html @@ -1,2 +1 @@ -SYSCALL_SEMAPHORE_CREATE in os::syscall - Rust -
const SYSCALL_SEMAPHORE_CREATE: usize = 1020;
\ No newline at end of file +SYSCALL_SEMAPHORE_CREATE in os::syscall - Rust

Constant os::syscall::SYSCALL_SEMAPHORE_CREATE

source ·
const SYSCALL_SEMAPHORE_CREATE: usize = 1020;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html b/main/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html index 81d22205..e3a48e5c 100644 --- a/main/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html +++ b/main/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html @@ -1,2 +1 @@ -SYSCALL_SEMAPHORE_DOWN in os::syscall - Rust -
const SYSCALL_SEMAPHORE_DOWN: usize = 1022;
\ No newline at end of file +SYSCALL_SEMAPHORE_DOWN in os::syscall - Rust

Constant os::syscall::SYSCALL_SEMAPHORE_DOWN

source ·
const SYSCALL_SEMAPHORE_DOWN: usize = 1022;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html b/main/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html index 3d2487da..1127a7d6 100644 --- a/main/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html +++ b/main/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html @@ -1,2 +1 @@ -SYSCALL_SEMAPHORE_UP in os::syscall - Rust -
const SYSCALL_SEMAPHORE_UP: usize = 1021;
\ No newline at end of file +SYSCALL_SEMAPHORE_UP in os::syscall - Rust

Constant os::syscall::SYSCALL_SEMAPHORE_UP

source ·
const SYSCALL_SEMAPHORE_UP: usize = 1021;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_SLEEP.html b/main/os/syscall/constant.SYSCALL_SLEEP.html index 5efd699d..401ac02a 100644 --- a/main/os/syscall/constant.SYSCALL_SLEEP.html +++ b/main/os/syscall/constant.SYSCALL_SLEEP.html @@ -1,2 +1 @@ -SYSCALL_SLEEP in os::syscall - Rust -

Constant os::syscall::SYSCALL_SLEEP

source ·
const SYSCALL_SLEEP: usize = 101;
\ No newline at end of file +SYSCALL_SLEEP in os::syscall - Rust

Constant os::syscall::SYSCALL_SLEEP

source ·
const SYSCALL_SLEEP: usize = 101;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_THREAD_CREATE.html b/main/os/syscall/constant.SYSCALL_THREAD_CREATE.html index d4c1b39e..06787806 100644 --- a/main/os/syscall/constant.SYSCALL_THREAD_CREATE.html +++ b/main/os/syscall/constant.SYSCALL_THREAD_CREATE.html @@ -1,2 +1 @@ -SYSCALL_THREAD_CREATE in os::syscall - Rust -
const SYSCALL_THREAD_CREATE: usize = 1000;
\ No newline at end of file +SYSCALL_THREAD_CREATE in os::syscall - Rust

Constant os::syscall::SYSCALL_THREAD_CREATE

source ·
const SYSCALL_THREAD_CREATE: usize = 1000;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_WAITPID.html b/main/os/syscall/constant.SYSCALL_WAITPID.html index 0e249f83..9db2b74a 100644 --- a/main/os/syscall/constant.SYSCALL_WAITPID.html +++ b/main/os/syscall/constant.SYSCALL_WAITPID.html @@ -1,2 +1 @@ -SYSCALL_WAITPID in os::syscall - Rust -

Constant os::syscall::SYSCALL_WAITPID

source ·
const SYSCALL_WAITPID: usize = 260;
\ No newline at end of file +SYSCALL_WAITPID in os::syscall - Rust

Constant os::syscall::SYSCALL_WAITPID

source ·
const SYSCALL_WAITPID: usize = 260;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_WAITTID.html b/main/os/syscall/constant.SYSCALL_WAITTID.html index cf4b6416..aef7c5ec 100644 --- a/main/os/syscall/constant.SYSCALL_WAITTID.html +++ b/main/os/syscall/constant.SYSCALL_WAITTID.html @@ -1,2 +1 @@ -SYSCALL_WAITTID in os::syscall - Rust -

Constant os::syscall::SYSCALL_WAITTID

source ·
const SYSCALL_WAITTID: usize = 1002;
\ No newline at end of file +SYSCALL_WAITTID in os::syscall - Rust

Constant os::syscall::SYSCALL_WAITTID

source ·
const SYSCALL_WAITTID: usize = 1002;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_WRITE.html b/main/os/syscall/constant.SYSCALL_WRITE.html index 113c4f26..bc592597 100644 --- a/main/os/syscall/constant.SYSCALL_WRITE.html +++ b/main/os/syscall/constant.SYSCALL_WRITE.html @@ -1,2 +1 @@ -SYSCALL_WRITE in os::syscall - Rust -

Constant os::syscall::SYSCALL_WRITE

source ·
const SYSCALL_WRITE: usize = 64;
\ No newline at end of file +SYSCALL_WRITE in os::syscall - Rust

Constant os::syscall::SYSCALL_WRITE

source ·
const SYSCALL_WRITE: usize = 64;
\ No newline at end of file diff --git a/main/os/syscall/constant.SYSCALL_YIELD.html b/main/os/syscall/constant.SYSCALL_YIELD.html index 18a62f80..4dffb0b4 100644 --- a/main/os/syscall/constant.SYSCALL_YIELD.html +++ b/main/os/syscall/constant.SYSCALL_YIELD.html @@ -1,2 +1 @@ -SYSCALL_YIELD in os::syscall - Rust -

Constant os::syscall::SYSCALL_YIELD

source ·
const SYSCALL_YIELD: usize = 124;
\ No newline at end of file +SYSCALL_YIELD in os::syscall - Rust

Constant os::syscall::SYSCALL_YIELD

source ·
const SYSCALL_YIELD: usize = 124;
\ No newline at end of file diff --git a/main/os/syscall/fn.syscall.html b/main/os/syscall/fn.syscall.html index 6e5fa3c6..1412f91b 100644 --- a/main/os/syscall/fn.syscall.html +++ b/main/os/syscall/fn.syscall.html @@ -1,2 +1 @@ -syscall in os::syscall - Rust -

Function os::syscall::syscall

source ·
pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize
\ No newline at end of file +syscall in os::syscall - Rust

Function os::syscall::syscall

source ·
pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize
\ No newline at end of file diff --git a/main/os/syscall/fs/fn.sys_close.html b/main/os/syscall/fs/fn.sys_close.html index 021275d9..c8c7fc40 100644 --- a/main/os/syscall/fs/fn.sys_close.html +++ b/main/os/syscall/fs/fn.sys_close.html @@ -1,2 +1 @@ -sys_close in os::syscall::fs - Rust -

Function os::syscall::fs::sys_close

source ·
pub fn sys_close(fd: usize) -> isize
\ No newline at end of file +sys_close in os::syscall::fs - Rust

Function os::syscall::fs::sys_close

source ·
pub fn sys_close(fd: usize) -> isize
\ No newline at end of file diff --git a/main/os/syscall/fs/fn.sys_dup.html b/main/os/syscall/fs/fn.sys_dup.html index 901a2c84..9aca28cb 100644 --- a/main/os/syscall/fs/fn.sys_dup.html +++ b/main/os/syscall/fs/fn.sys_dup.html @@ -1,2 +1 @@ -sys_dup in os::syscall::fs - Rust -

Function os::syscall::fs::sys_dup

source ·
pub fn sys_dup(fd: usize) -> isize
\ No newline at end of file +sys_dup in os::syscall::fs - Rust

Function os::syscall::fs::sys_dup

source ·
pub fn sys_dup(fd: usize) -> isize
\ No newline at end of file diff --git a/main/os/syscall/fs/fn.sys_open.html b/main/os/syscall/fs/fn.sys_open.html index b535dfad..090420ff 100644 --- a/main/os/syscall/fs/fn.sys_open.html +++ b/main/os/syscall/fs/fn.sys_open.html @@ -1,2 +1 @@ -sys_open in os::syscall::fs - Rust -

Function os::syscall::fs::sys_open

source ·
pub fn sys_open(path: *const u8, flags: u32) -> isize
\ No newline at end of file +sys_open in os::syscall::fs - Rust

Function os::syscall::fs::sys_open

source ·
pub fn sys_open(path: *const u8, flags: u32) -> isize
\ No newline at end of file diff --git a/main/os/syscall/fs/fn.sys_pipe.html b/main/os/syscall/fs/fn.sys_pipe.html index aec2a356..1569da5d 100644 --- a/main/os/syscall/fs/fn.sys_pipe.html +++ b/main/os/syscall/fs/fn.sys_pipe.html @@ -1,2 +1 @@ -sys_pipe in os::syscall::fs - Rust -

Function os::syscall::fs::sys_pipe

source ·
pub fn sys_pipe(pipe: *mut usize) -> isize
\ No newline at end of file +sys_pipe in os::syscall::fs - Rust

Function os::syscall::fs::sys_pipe

source ·
pub fn sys_pipe(pipe: *mut usize) -> isize
\ No newline at end of file diff --git a/main/os/syscall/fs/fn.sys_read.html b/main/os/syscall/fs/fn.sys_read.html index 1137ca7a..662c22d5 100644 --- a/main/os/syscall/fs/fn.sys_read.html +++ b/main/os/syscall/fs/fn.sys_read.html @@ -1,2 +1 @@ -sys_read in os::syscall::fs - Rust -

Function os::syscall::fs::sys_read

source ·
pub fn sys_read(fd: usize, buf: *const u8, len: usize) -> isize
\ No newline at end of file +sys_read in os::syscall::fs - Rust

Function os::syscall::fs::sys_read

source ·
pub fn sys_read(fd: usize, buf: *const u8, len: usize) -> isize
\ No newline at end of file diff --git a/main/os/syscall/fs/fn.sys_write.html b/main/os/syscall/fs/fn.sys_write.html index fcf443f3..3de7f8ce 100644 --- a/main/os/syscall/fs/fn.sys_write.html +++ b/main/os/syscall/fs/fn.sys_write.html @@ -1,2 +1 @@ -sys_write in os::syscall::fs - Rust -

Function os::syscall::fs::sys_write

source ·
pub fn sys_write(fd: usize, buf: *const u8, len: usize) -> isize
\ No newline at end of file +sys_write in os::syscall::fs - Rust

Function os::syscall::fs::sys_write

source ·
pub fn sys_write(fd: usize, buf: *const u8, len: usize) -> isize
\ No newline at end of file diff --git a/main/os/syscall/fs/index.html b/main/os/syscall/fs/index.html index 7bd3506f..b14c04dd 100644 --- a/main/os/syscall/fs/index.html +++ b/main/os/syscall/fs/index.html @@ -1,2 +1 @@ -os::syscall::fs - Rust -
\ No newline at end of file +os::syscall::fs - Rust
\ No newline at end of file diff --git a/main/os/syscall/gui/constant.FB_VADDR.html b/main/os/syscall/gui/constant.FB_VADDR.html index 8392f3c9..310b0a41 100644 --- a/main/os/syscall/gui/constant.FB_VADDR.html +++ b/main/os/syscall/gui/constant.FB_VADDR.html @@ -1,2 +1 @@ -FB_VADDR in os::syscall::gui - Rust -

Constant os::syscall::gui::FB_VADDR

source ·
const FB_VADDR: usize = 0x10000000;
\ No newline at end of file +FB_VADDR in os::syscall::gui - Rust

Constant os::syscall::gui::FB_VADDR

source ·
const FB_VADDR: usize = 0x10000000;
\ No newline at end of file diff --git a/main/os/syscall/gui/fn.sys_framebuffer.html b/main/os/syscall/gui/fn.sys_framebuffer.html index 24f95909..da5cb929 100644 --- a/main/os/syscall/gui/fn.sys_framebuffer.html +++ b/main/os/syscall/gui/fn.sys_framebuffer.html @@ -1,2 +1 @@ -sys_framebuffer in os::syscall::gui - Rust -

Function os::syscall::gui::sys_framebuffer

source ·
pub fn sys_framebuffer() -> isize
\ No newline at end of file +sys_framebuffer in os::syscall::gui - Rust

Function os::syscall::gui::sys_framebuffer

source ·
pub fn sys_framebuffer() -> isize
\ No newline at end of file diff --git a/main/os/syscall/gui/fn.sys_framebuffer_flush.html b/main/os/syscall/gui/fn.sys_framebuffer_flush.html index c6e9d326..cf0b4857 100644 --- a/main/os/syscall/gui/fn.sys_framebuffer_flush.html +++ b/main/os/syscall/gui/fn.sys_framebuffer_flush.html @@ -1,2 +1 @@ -sys_framebuffer_flush in os::syscall::gui - Rust -
pub fn sys_framebuffer_flush() -> isize
\ No newline at end of file +sys_framebuffer_flush in os::syscall::gui - Rust

Function os::syscall::gui::sys_framebuffer_flush

source ·
pub fn sys_framebuffer_flush() -> isize
\ No newline at end of file diff --git a/main/os/syscall/gui/index.html b/main/os/syscall/gui/index.html index 34ad25a7..7bb2ba14 100644 --- a/main/os/syscall/gui/index.html +++ b/main/os/syscall/gui/index.html @@ -1,2 +1 @@ -os::syscall::gui - Rust -
\ No newline at end of file +os::syscall::gui - Rust

Module os::syscall::gui

source ·

Constants§

Functions§

\ No newline at end of file diff --git a/main/os/syscall/index.html b/main/os/syscall/index.html index 25598977..3e87a269 100644 --- a/main/os/syscall/index.html +++ b/main/os/syscall/index.html @@ -1,2 +1 @@ -os::syscall - Rust -
\ No newline at end of file +os::syscall - Rust
\ No newline at end of file diff --git a/main/os/syscall/input/fn.sys_event_get.html b/main/os/syscall/input/fn.sys_event_get.html index fc95e5c1..b7340685 100644 --- a/main/os/syscall/input/fn.sys_event_get.html +++ b/main/os/syscall/input/fn.sys_event_get.html @@ -1,2 +1 @@ -sys_event_get in os::syscall::input - Rust -

Function os::syscall::input::sys_event_get

source ·
pub fn sys_event_get() -> isize
\ No newline at end of file +sys_event_get in os::syscall::input - Rust

Function os::syscall::input::sys_event_get

source ·
pub fn sys_event_get() -> isize
\ No newline at end of file diff --git a/main/os/syscall/input/fn.sys_key_pressed.html b/main/os/syscall/input/fn.sys_key_pressed.html index 458f5515..29e9763e 100644 --- a/main/os/syscall/input/fn.sys_key_pressed.html +++ b/main/os/syscall/input/fn.sys_key_pressed.html @@ -1,3 +1,2 @@ -sys_key_pressed in os::syscall::input - Rust -

Function os::syscall::input::sys_key_pressed

source ·
pub fn sys_key_pressed() -> isize
Expand description

check UART’s read-buffer is empty or not

+sys_key_pressed in os::syscall::input - Rust

Function os::syscall::input::sys_key_pressed

source ·
pub fn sys_key_pressed() -> isize
Expand description

check UART’s read-buffer is empty or not

\ No newline at end of file diff --git a/main/os/syscall/input/index.html b/main/os/syscall/input/index.html index 78b4eca1..ce15d3ff 100644 --- a/main/os/syscall/input/index.html +++ b/main/os/syscall/input/index.html @@ -1,2 +1 @@ -os::syscall::input - Rust -

Module os::syscall::input

source ·

Functions

\ No newline at end of file +os::syscall::input - Rust

Module os::syscall::input

source ·

Functions§

\ No newline at end of file diff --git a/main/os/syscall/net/fn.sys_accept.html b/main/os/syscall/net/fn.sys_accept.html index 65d118c6..1384484f 100644 --- a/main/os/syscall/net/fn.sys_accept.html +++ b/main/os/syscall/net/fn.sys_accept.html @@ -1,2 +1 @@ -sys_accept in os::syscall::net - Rust -

Function os::syscall::net::sys_accept

source ·
pub fn sys_accept(port_index: usize) -> isize
\ No newline at end of file +sys_accept in os::syscall::net - Rust

Function os::syscall::net::sys_accept

source ·
pub fn sys_accept(port_index: usize) -> isize
\ No newline at end of file diff --git a/main/os/syscall/net/fn.sys_connect.html b/main/os/syscall/net/fn.sys_connect.html index eac4f615..9c1d9b69 100644 --- a/main/os/syscall/net/fn.sys_connect.html +++ b/main/os/syscall/net/fn.sys_connect.html @@ -1,2 +1 @@ -sys_connect in os::syscall::net - Rust -

Function os::syscall::net::sys_connect

source ·
pub fn sys_connect(raddr: u32, lport: u16, rport: u16) -> isize
\ No newline at end of file +sys_connect in os::syscall::net - Rust

Function os::syscall::net::sys_connect

source ·
pub fn sys_connect(raddr: u32, lport: u16, rport: u16) -> isize
\ No newline at end of file diff --git a/main/os/syscall/net/fn.sys_listen.html b/main/os/syscall/net/fn.sys_listen.html index e42da505..eb0f76f2 100644 --- a/main/os/syscall/net/fn.sys_listen.html +++ b/main/os/syscall/net/fn.sys_listen.html @@ -1,2 +1 @@ -sys_listen in os::syscall::net - Rust -

Function os::syscall::net::sys_listen

source ·
pub fn sys_listen(port: u16) -> isize
\ No newline at end of file +sys_listen in os::syscall::net - Rust

Function os::syscall::net::sys_listen

source ·
pub fn sys_listen(port: u16) -> isize
\ No newline at end of file diff --git a/main/os/syscall/net/index.html b/main/os/syscall/net/index.html index 989c9490..56ae6353 100644 --- a/main/os/syscall/net/index.html +++ b/main/os/syscall/net/index.html @@ -1,2 +1 @@ -os::syscall::net - Rust -
\ No newline at end of file +os::syscall::net - Rust

Module os::syscall::net

source ·

Functions§

\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_exec.html b/main/os/syscall/process/fn.sys_exec.html index 4a2f5da6..a7b10d41 100644 --- a/main/os/syscall/process/fn.sys_exec.html +++ b/main/os/syscall/process/fn.sys_exec.html @@ -1,2 +1 @@ -sys_exec in os::syscall::process - Rust -

Function os::syscall::process::sys_exec

source ·
pub fn sys_exec(path: *const u8, args: *const usize) -> isize
\ No newline at end of file +sys_exec in os::syscall::process - Rust

Function os::syscall::process::sys_exec

source ·
pub fn sys_exec(path: *const u8, args: *const usize) -> isize
\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_exit.html b/main/os/syscall/process/fn.sys_exit.html index 4841498d..ecb83741 100644 --- a/main/os/syscall/process/fn.sys_exit.html +++ b/main/os/syscall/process/fn.sys_exit.html @@ -1,2 +1 @@ -sys_exit in os::syscall::process - Rust -

Function os::syscall::process::sys_exit

source ·
pub fn sys_exit(exit_code: i32) -> !
\ No newline at end of file +sys_exit in os::syscall::process - Rust

Function os::syscall::process::sys_exit

source ·
pub fn sys_exit(exit_code: i32) -> !
\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_fork.html b/main/os/syscall/process/fn.sys_fork.html index 7958ccce..bb98f757 100644 --- a/main/os/syscall/process/fn.sys_fork.html +++ b/main/os/syscall/process/fn.sys_fork.html @@ -1,2 +1 @@ -sys_fork in os::syscall::process - Rust -

Function os::syscall::process::sys_fork

source ·
pub fn sys_fork() -> isize
\ No newline at end of file +sys_fork in os::syscall::process - Rust

Function os::syscall::process::sys_fork

source ·
pub fn sys_fork() -> isize
\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_get_time.html b/main/os/syscall/process/fn.sys_get_time.html index fa600463..fc90fbad 100644 --- a/main/os/syscall/process/fn.sys_get_time.html +++ b/main/os/syscall/process/fn.sys_get_time.html @@ -1,2 +1 @@ -sys_get_time in os::syscall::process - Rust -

Function os::syscall::process::sys_get_time

source ·
pub fn sys_get_time() -> isize
\ No newline at end of file +sys_get_time in os::syscall::process - Rust

Function os::syscall::process::sys_get_time

source ·
pub fn sys_get_time() -> isize
\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_getpid.html b/main/os/syscall/process/fn.sys_getpid.html index 0442ee35..909078f3 100644 --- a/main/os/syscall/process/fn.sys_getpid.html +++ b/main/os/syscall/process/fn.sys_getpid.html @@ -1,2 +1 @@ -sys_getpid in os::syscall::process - Rust -

Function os::syscall::process::sys_getpid

source ·
pub fn sys_getpid() -> isize
\ No newline at end of file +sys_getpid in os::syscall::process - Rust

Function os::syscall::process::sys_getpid

source ·
pub fn sys_getpid() -> isize
\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_kill.html b/main/os/syscall/process/fn.sys_kill.html index d8d9ec7c..5d17bcbc 100644 --- a/main/os/syscall/process/fn.sys_kill.html +++ b/main/os/syscall/process/fn.sys_kill.html @@ -1,2 +1 @@ -sys_kill in os::syscall::process - Rust -

Function os::syscall::process::sys_kill

source ·
pub fn sys_kill(pid: usize, signal: u32) -> isize
\ No newline at end of file +sys_kill in os::syscall::process - Rust

Function os::syscall::process::sys_kill

source ·
pub fn sys_kill(pid: usize, signal: u32) -> isize
\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_waitpid.html b/main/os/syscall/process/fn.sys_waitpid.html index 9fbe9a18..6fceaa8d 100644 --- a/main/os/syscall/process/fn.sys_waitpid.html +++ b/main/os/syscall/process/fn.sys_waitpid.html @@ -1,4 +1,3 @@ -sys_waitpid in os::syscall::process - Rust -

Function os::syscall::process::sys_waitpid

source ·
pub fn sys_waitpid(pid: isize, exit_code_ptr: *mut i32) -> isize
Expand description

If there is not a child process whose pid is same as given, return -1. +sys_waitpid in os::syscall::process - Rust

Function os::syscall::process::sys_waitpid

source ·
pub fn sys_waitpid(pid: isize, exit_code_ptr: *mut i32) -> isize
Expand description

If there is not a child process whose pid is same as given, return -1. Else if there is a child process but it is still running, return -2.

\ No newline at end of file diff --git a/main/os/syscall/process/fn.sys_yield.html b/main/os/syscall/process/fn.sys_yield.html index a5c54bdf..659c7a55 100644 --- a/main/os/syscall/process/fn.sys_yield.html +++ b/main/os/syscall/process/fn.sys_yield.html @@ -1,2 +1 @@ -sys_yield in os::syscall::process - Rust -

Function os::syscall::process::sys_yield

source ·
pub fn sys_yield() -> isize
\ No newline at end of file +sys_yield in os::syscall::process - Rust

Function os::syscall::process::sys_yield

source ·
pub fn sys_yield() -> isize
\ No newline at end of file diff --git a/main/os/syscall/process/index.html b/main/os/syscall/process/index.html index acb2bdb6..da8bf4a1 100644 --- a/main/os/syscall/process/index.html +++ b/main/os/syscall/process/index.html @@ -1,3 +1,2 @@ -os::syscall::process - Rust -

Module os::syscall::process

source ·

Functions

  • If there is not a child process whose pid is same as given, return -1. +os::syscall::process - Rust

    Module os::syscall::process

    source ·

    Functions§

    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_condvar_create.html b/main/os/syscall/sync/fn.sys_condvar_create.html index 96431d5a..b3b3cce7 100644 --- a/main/os/syscall/sync/fn.sys_condvar_create.html +++ b/main/os/syscall/sync/fn.sys_condvar_create.html @@ -1,2 +1 @@ -sys_condvar_create in os::syscall::sync - Rust -
    pub fn sys_condvar_create() -> isize
    \ No newline at end of file +sys_condvar_create in os::syscall::sync - Rust

    Function os::syscall::sync::sys_condvar_create

    source ·
    pub fn sys_condvar_create() -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_condvar_signal.html b/main/os/syscall/sync/fn.sys_condvar_signal.html index f3538dcb..2ea09ead 100644 --- a/main/os/syscall/sync/fn.sys_condvar_signal.html +++ b/main/os/syscall/sync/fn.sys_condvar_signal.html @@ -1,2 +1 @@ -sys_condvar_signal in os::syscall::sync - Rust -
    pub fn sys_condvar_signal(condvar_id: usize) -> isize
    \ No newline at end of file +sys_condvar_signal in os::syscall::sync - Rust

    Function os::syscall::sync::sys_condvar_signal

    source ·
    pub fn sys_condvar_signal(condvar_id: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_condvar_wait.html b/main/os/syscall/sync/fn.sys_condvar_wait.html index af82dc22..98995254 100644 --- a/main/os/syscall/sync/fn.sys_condvar_wait.html +++ b/main/os/syscall/sync/fn.sys_condvar_wait.html @@ -1,2 +1 @@ -sys_condvar_wait in os::syscall::sync - Rust -

    Function os::syscall::sync::sys_condvar_wait

    source ·
    pub fn sys_condvar_wait(condvar_id: usize, mutex_id: usize) -> isize
    \ No newline at end of file +sys_condvar_wait in os::syscall::sync - Rust

    Function os::syscall::sync::sys_condvar_wait

    source ·
    pub fn sys_condvar_wait(condvar_id: usize, mutex_id: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_mutex_create.html b/main/os/syscall/sync/fn.sys_mutex_create.html index edf6a137..d27112ed 100644 --- a/main/os/syscall/sync/fn.sys_mutex_create.html +++ b/main/os/syscall/sync/fn.sys_mutex_create.html @@ -1,2 +1 @@ -sys_mutex_create in os::syscall::sync - Rust -

    Function os::syscall::sync::sys_mutex_create

    source ·
    pub fn sys_mutex_create(blocking: bool) -> isize
    \ No newline at end of file +sys_mutex_create in os::syscall::sync - Rust

    Function os::syscall::sync::sys_mutex_create

    source ·
    pub fn sys_mutex_create(blocking: bool) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_mutex_lock.html b/main/os/syscall/sync/fn.sys_mutex_lock.html index 443b45dc..f4b54d57 100644 --- a/main/os/syscall/sync/fn.sys_mutex_lock.html +++ b/main/os/syscall/sync/fn.sys_mutex_lock.html @@ -1,2 +1 @@ -sys_mutex_lock in os::syscall::sync - Rust -

    Function os::syscall::sync::sys_mutex_lock

    source ·
    pub fn sys_mutex_lock(mutex_id: usize) -> isize
    \ No newline at end of file +sys_mutex_lock in os::syscall::sync - Rust

    Function os::syscall::sync::sys_mutex_lock

    source ·
    pub fn sys_mutex_lock(mutex_id: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_mutex_unlock.html b/main/os/syscall/sync/fn.sys_mutex_unlock.html index c73c3dfc..1e156bd5 100644 --- a/main/os/syscall/sync/fn.sys_mutex_unlock.html +++ b/main/os/syscall/sync/fn.sys_mutex_unlock.html @@ -1,2 +1 @@ -sys_mutex_unlock in os::syscall::sync - Rust -

    Function os::syscall::sync::sys_mutex_unlock

    source ·
    pub fn sys_mutex_unlock(mutex_id: usize) -> isize
    \ No newline at end of file +sys_mutex_unlock in os::syscall::sync - Rust

    Function os::syscall::sync::sys_mutex_unlock

    source ·
    pub fn sys_mutex_unlock(mutex_id: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_semaphore_create.html b/main/os/syscall/sync/fn.sys_semaphore_create.html index 3aafbb50..91dba45c 100644 --- a/main/os/syscall/sync/fn.sys_semaphore_create.html +++ b/main/os/syscall/sync/fn.sys_semaphore_create.html @@ -1,2 +1 @@ -sys_semaphore_create in os::syscall::sync - Rust -
    pub fn sys_semaphore_create(res_count: usize) -> isize
    \ No newline at end of file +sys_semaphore_create in os::syscall::sync - Rust

    Function os::syscall::sync::sys_semaphore_create

    source ·
    pub fn sys_semaphore_create(res_count: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_semaphore_down.html b/main/os/syscall/sync/fn.sys_semaphore_down.html index 695598ea..feb3bb2b 100644 --- a/main/os/syscall/sync/fn.sys_semaphore_down.html +++ b/main/os/syscall/sync/fn.sys_semaphore_down.html @@ -1,2 +1 @@ -sys_semaphore_down in os::syscall::sync - Rust -
    pub fn sys_semaphore_down(sem_id: usize) -> isize
    \ No newline at end of file +sys_semaphore_down in os::syscall::sync - Rust

    Function os::syscall::sync::sys_semaphore_down

    source ·
    pub fn sys_semaphore_down(sem_id: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_semaphore_up.html b/main/os/syscall/sync/fn.sys_semaphore_up.html index dc9a7b20..9f018968 100644 --- a/main/os/syscall/sync/fn.sys_semaphore_up.html +++ b/main/os/syscall/sync/fn.sys_semaphore_up.html @@ -1,2 +1 @@ -sys_semaphore_up in os::syscall::sync - Rust -

    Function os::syscall::sync::sys_semaphore_up

    source ·
    pub fn sys_semaphore_up(sem_id: usize) -> isize
    \ No newline at end of file +sys_semaphore_up in os::syscall::sync - Rust

    Function os::syscall::sync::sys_semaphore_up

    source ·
    pub fn sys_semaphore_up(sem_id: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/fn.sys_sleep.html b/main/os/syscall/sync/fn.sys_sleep.html index 9415829f..a0188d2b 100644 --- a/main/os/syscall/sync/fn.sys_sleep.html +++ b/main/os/syscall/sync/fn.sys_sleep.html @@ -1,2 +1 @@ -sys_sleep in os::syscall::sync - Rust -

    Function os::syscall::sync::sys_sleep

    source ·
    pub fn sys_sleep(ms: usize) -> isize
    \ No newline at end of file +sys_sleep in os::syscall::sync - Rust

    Function os::syscall::sync::sys_sleep

    source ·
    pub fn sys_sleep(ms: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/sync/index.html b/main/os/syscall/sync/index.html index 14711427..db83ea07 100644 --- a/main/os/syscall/sync/index.html +++ b/main/os/syscall/sync/index.html @@ -1,2 +1 @@ -os::syscall::sync - Rust -
    \ No newline at end of file +os::syscall::sync - Rust
    \ No newline at end of file diff --git a/main/os/syscall/thread/fn.sys_gettid.html b/main/os/syscall/thread/fn.sys_gettid.html index ab5a8619..73a04c6b 100644 --- a/main/os/syscall/thread/fn.sys_gettid.html +++ b/main/os/syscall/thread/fn.sys_gettid.html @@ -1,2 +1 @@ -sys_gettid in os::syscall::thread - Rust -

    Function os::syscall::thread::sys_gettid

    source ·
    pub fn sys_gettid() -> isize
    \ No newline at end of file +sys_gettid in os::syscall::thread - Rust

    Function os::syscall::thread::sys_gettid

    source ·
    pub fn sys_gettid() -> isize
    \ No newline at end of file diff --git a/main/os/syscall/thread/fn.sys_thread_create.html b/main/os/syscall/thread/fn.sys_thread_create.html index 58e66144..1b3c5baf 100644 --- a/main/os/syscall/thread/fn.sys_thread_create.html +++ b/main/os/syscall/thread/fn.sys_thread_create.html @@ -1,2 +1 @@ -sys_thread_create in os::syscall::thread - Rust -
    pub fn sys_thread_create(entry: usize, arg: usize) -> isize
    \ No newline at end of file +sys_thread_create in os::syscall::thread - Rust

    Function os::syscall::thread::sys_thread_create

    source ·
    pub fn sys_thread_create(entry: usize, arg: usize) -> isize
    \ No newline at end of file diff --git a/main/os/syscall/thread/fn.sys_waittid.html b/main/os/syscall/thread/fn.sys_waittid.html index 95d4b667..5d2809dc 100644 --- a/main/os/syscall/thread/fn.sys_waittid.html +++ b/main/os/syscall/thread/fn.sys_waittid.html @@ -1,5 +1,4 @@ -sys_waittid in os::syscall::thread - Rust -

    Function os::syscall::thread::sys_waittid

    source ·
    pub fn sys_waittid(tid: usize) -> i32
    Expand description

    thread does not exist, return -1 +sys_waittid in os::syscall::thread - Rust

    Function os::syscall::thread::sys_waittid

    source ·
    pub fn sys_waittid(tid: usize) -> i32
    Expand description

    thread does not exist, return -1 thread has not exited yet, return -2 otherwise, return thread’s exit code

    \ No newline at end of file diff --git a/main/os/syscall/thread/index.html b/main/os/syscall/thread/index.html index ad6c97b8..35ca8bfa 100644 --- a/main/os/syscall/thread/index.html +++ b/main/os/syscall/thread/index.html @@ -1,4 +1,3 @@ -os::syscall::thread - Rust -

    Module os::syscall::thread

    source ·

    Functions

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/fn.add_initproc.html b/main/os/task/fn.add_initproc.html index 76ac0e35..04070638 100644 --- a/main/os/task/fn.add_initproc.html +++ b/main/os/task/fn.add_initproc.html @@ -1,2 +1 @@ -add_initproc in os::task - Rust -

Function os::task::add_initproc

source ·
pub fn add_initproc()
\ No newline at end of file +add_initproc in os::task - Rust

Function os::task::add_initproc

source ·
pub fn add_initproc()
\ No newline at end of file diff --git a/main/os/task/fn.block_current_and_run_next.html b/main/os/task/fn.block_current_and_run_next.html index 3adde14d..070f01e8 100644 --- a/main/os/task/fn.block_current_and_run_next.html +++ b/main/os/task/fn.block_current_and_run_next.html @@ -1,2 +1 @@ -block_current_and_run_next in os::task - Rust -
pub fn block_current_and_run_next()
\ No newline at end of file +block_current_and_run_next in os::task - Rust

Function os::task::block_current_and_run_next

source ·
pub fn block_current_and_run_next()
\ No newline at end of file diff --git a/main/os/task/fn.block_current_task.html b/main/os/task/fn.block_current_task.html index 71e76889..fd62fbdb 100644 --- a/main/os/task/fn.block_current_task.html +++ b/main/os/task/fn.block_current_task.html @@ -1,3 +1,2 @@ -block_current_task in os::task - Rust -

Function os::task::block_current_task

source ·
pub fn block_current_task() -> *mut TaskContext
Expand description

This function must be followed by a schedule

+block_current_task in os::task - Rust

Function os::task::block_current_task

source ·
pub fn block_current_task() -> *mut TaskContext
Expand description

This function must be followed by a schedule

\ No newline at end of file diff --git a/main/os/task/fn.check_signals_of_current.html b/main/os/task/fn.check_signals_of_current.html index d6593dfc..07c27897 100644 --- a/main/os/task/fn.check_signals_of_current.html +++ b/main/os/task/fn.check_signals_of_current.html @@ -1,2 +1 @@ -check_signals_of_current in os::task - Rust -
pub fn check_signals_of_current() -> Option<(i32, &'static str)>
\ No newline at end of file +check_signals_of_current in os::task - Rust

Function os::task::check_signals_of_current

source ·
pub fn check_signals_of_current() -> Option<(i32, &'static str)>
\ No newline at end of file diff --git a/main/os/task/fn.current_add_signal.html b/main/os/task/fn.current_add_signal.html index 62e8d01e..f47f3771 100644 --- a/main/os/task/fn.current_add_signal.html +++ b/main/os/task/fn.current_add_signal.html @@ -1,2 +1 @@ -current_add_signal in os::task - Rust -

Function os::task::current_add_signal

source ·
pub fn current_add_signal(signal: SignalFlags)
\ No newline at end of file +current_add_signal in os::task - Rust

Function os::task::current_add_signal

source ·
pub fn current_add_signal(signal: SignalFlags)
\ No newline at end of file diff --git a/main/os/task/fn.exit_current_and_run_next.html b/main/os/task/fn.exit_current_and_run_next.html index 8df37580..16b4f9cb 100644 --- a/main/os/task/fn.exit_current_and_run_next.html +++ b/main/os/task/fn.exit_current_and_run_next.html @@ -1,3 +1,2 @@ -exit_current_and_run_next in os::task - Rust -
pub fn exit_current_and_run_next(exit_code: i32)
Expand description

Exit the current ‘Running’ task and run the next task in task list.

+exit_current_and_run_next in os::task - Rust

Function os::task::exit_current_and_run_next

source ·
pub fn exit_current_and_run_next(exit_code: i32)
Expand description

Exit the current ‘Running’ task and run the next task in task list.

\ No newline at end of file diff --git a/main/os/task/fn.suspend_current_and_run_next.html b/main/os/task/fn.suspend_current_and_run_next.html index b4351d1f..155272cf 100644 --- a/main/os/task/fn.suspend_current_and_run_next.html +++ b/main/os/task/fn.suspend_current_and_run_next.html @@ -1,2 +1 @@ -suspend_current_and_run_next in os::task - Rust -
pub fn suspend_current_and_run_next()
\ No newline at end of file +suspend_current_and_run_next in os::task - Rust

Function os::task::suspend_current_and_run_next

source ·
pub fn suspend_current_and_run_next()
\ No newline at end of file diff --git a/main/os/task/id/constant.IDLE_PID.html b/main/os/task/id/constant.IDLE_PID.html index d42cbffe..7a845f5a 100644 --- a/main/os/task/id/constant.IDLE_PID.html +++ b/main/os/task/id/constant.IDLE_PID.html @@ -1,2 +1 @@ -IDLE_PID in os::task::id - Rust -

Constant os::task::id::IDLE_PID

source ·
pub const IDLE_PID: usize = 0;
\ No newline at end of file +IDLE_PID in os::task::id - Rust

Constant os::task::id::IDLE_PID

source ·
pub const IDLE_PID: usize = 0;
\ No newline at end of file diff --git a/main/os/task/id/fn.kernel_stack_position.html b/main/os/task/id/fn.kernel_stack_position.html index fd8f287b..8a74f693 100644 --- a/main/os/task/id/fn.kernel_stack_position.html +++ b/main/os/task/id/fn.kernel_stack_position.html @@ -1,3 +1,2 @@ -kernel_stack_position in os::task::id - Rust -

Function os::task::id::kernel_stack_position

source ·
pub fn kernel_stack_position(kstack_id: usize) -> (usize, usize)
Expand description

Return (bottom, top) of a kernel stack in kernel space.

+kernel_stack_position in os::task::id - Rust

Function os::task::id::kernel_stack_position

source ·
pub fn kernel_stack_position(kstack_id: usize) -> (usize, usize)
Expand description

Return (bottom, top) of a kernel stack in kernel space.

\ No newline at end of file diff --git a/main/os/task/id/fn.kstack_alloc.html b/main/os/task/id/fn.kstack_alloc.html index 89ec44b3..73f587de 100644 --- a/main/os/task/id/fn.kstack_alloc.html +++ b/main/os/task/id/fn.kstack_alloc.html @@ -1,2 +1 @@ -kstack_alloc in os::task::id - Rust -

Function os::task::id::kstack_alloc

source ·
pub fn kstack_alloc() -> KernelStack
\ No newline at end of file +kstack_alloc in os::task::id - Rust

Function os::task::id::kstack_alloc

source ·
pub fn kstack_alloc() -> KernelStack
\ No newline at end of file diff --git a/main/os/task/id/fn.pid_alloc.html b/main/os/task/id/fn.pid_alloc.html index 5c592db4..48938d82 100644 --- a/main/os/task/id/fn.pid_alloc.html +++ b/main/os/task/id/fn.pid_alloc.html @@ -1,2 +1 @@ -pid_alloc in os::task::id - Rust -

Function os::task::id::pid_alloc

source ·
pub fn pid_alloc() -> PidHandle
\ No newline at end of file +pid_alloc in os::task::id - Rust

Function os::task::id::pid_alloc

source ·
pub fn pid_alloc() -> PidHandle
\ No newline at end of file diff --git a/main/os/task/id/fn.trap_cx_bottom_from_tid.html b/main/os/task/id/fn.trap_cx_bottom_from_tid.html index 12a580e8..3b6e17b3 100644 --- a/main/os/task/id/fn.trap_cx_bottom_from_tid.html +++ b/main/os/task/id/fn.trap_cx_bottom_from_tid.html @@ -1,2 +1 @@ -trap_cx_bottom_from_tid in os::task::id - Rust -
fn trap_cx_bottom_from_tid(tid: usize) -> usize
\ No newline at end of file +trap_cx_bottom_from_tid in os::task::id - Rust

Function os::task::id::trap_cx_bottom_from_tid

source ·
fn trap_cx_bottom_from_tid(tid: usize) -> usize
\ No newline at end of file diff --git a/main/os/task/id/fn.ustack_bottom_from_tid.html b/main/os/task/id/fn.ustack_bottom_from_tid.html index d4921136..3e056477 100644 --- a/main/os/task/id/fn.ustack_bottom_from_tid.html +++ b/main/os/task/id/fn.ustack_bottom_from_tid.html @@ -1,2 +1 @@ -ustack_bottom_from_tid in os::task::id - Rust -

Function os::task::id::ustack_bottom_from_tid

source ·
fn ustack_bottom_from_tid(ustack_base: usize, tid: usize) -> usize
\ No newline at end of file +ustack_bottom_from_tid in os::task::id - Rust

Function os::task::id::ustack_bottom_from_tid

source ·
fn ustack_bottom_from_tid(ustack_base: usize, tid: usize) -> usize
\ No newline at end of file diff --git a/main/os/task/id/index.html b/main/os/task/id/index.html index 4a26a7cd..b0994235 100644 --- a/main/os/task/id/index.html +++ b/main/os/task/id/index.html @@ -1,2 +1 @@ -os::task::id - Rust -
\ No newline at end of file +os::task::id - Rust

Module os::task::id

source ·

Structs§

Constants§

Functions§

\ No newline at end of file diff --git a/main/os/task/id/struct.KSTACK_ALLOCATOR.html b/main/os/task/id/struct.KSTACK_ALLOCATOR.html index a0bdbc47..766115ad 100644 --- a/main/os/task/id/struct.KSTACK_ALLOCATOR.html +++ b/main/os/task/id/struct.KSTACK_ALLOCATOR.html @@ -1,27 +1,26 @@ -KSTACK_ALLOCATOR in os::task::id - Rust -

Struct os::task::id::KSTACK_ALLOCATOR

source ·
struct KSTACK_ALLOCATOR {
+KSTACK_ALLOCATOR in os::task::id - Rust

Struct os::task::id::KSTACK_ALLOCATOR

source ·
struct KSTACK_ALLOCATOR {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for KSTACK_ALLOCATOR

§

type Target = UPIntrFreeCell<RecycleAllocator>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<RecycleAllocator>

Dereferences the value.
source§

impl LazyStatic for KSTACK_ALLOCATOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for KSTACK_ALLOCATOR

§

type Target = UPIntrFreeCell<RecycleAllocator>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<RecycleAllocator>

Dereferences the value.
source§

impl LazyStatic for KSTACK_ALLOCATOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/id/struct.KernelStack.html b/main/os/task/id/struct.KernelStack.html index 3965911c..8b7ea8a3 100644 --- a/main/os/task/id/struct.KernelStack.html +++ b/main/os/task/id/struct.KernelStack.html @@ -1,24 +1,23 @@ -KernelStack in os::task::id - Rust -

Struct os::task::id::KernelStack

source ·
pub struct KernelStack(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl KernelStack

source

pub fn push_on_top<T>(&self, value: T) -> *mut T
where - T: Sized,

source

pub fn get_top(&self) -> usize

Trait Implementations§

source§

impl Drop for KernelStack

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +KernelStack in os::task::id - Rust

Struct os::task::id::KernelStack

source ·
pub struct KernelStack(pub usize);

Tuple Fields§

§0: usize

Implementations§

source§

impl KernelStack

source

pub fn push_on_top<T>(&self, value: T) -> *mut T
where + T: Sized,

source

pub fn get_top(&self) -> usize

Trait Implementations§

source§

impl Drop for KernelStack

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/id/struct.PID_ALLOCATOR.html b/main/os/task/id/struct.PID_ALLOCATOR.html index 821d3633..391ff6cb 100644 --- a/main/os/task/id/struct.PID_ALLOCATOR.html +++ b/main/os/task/id/struct.PID_ALLOCATOR.html @@ -1,27 +1,26 @@ -PID_ALLOCATOR in os::task::id - Rust -

Struct os::task::id::PID_ALLOCATOR

source ·
struct PID_ALLOCATOR {
+PID_ALLOCATOR in os::task::id - Rust

Struct os::task::id::PID_ALLOCATOR

source ·
struct PID_ALLOCATOR {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for PID_ALLOCATOR

§

type Target = UPIntrFreeCell<RecycleAllocator>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<RecycleAllocator>

Dereferences the value.
source§

impl LazyStatic for PID_ALLOCATOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for PID_ALLOCATOR

§

type Target = UPIntrFreeCell<RecycleAllocator>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<RecycleAllocator>

Dereferences the value.
source§

impl LazyStatic for PID_ALLOCATOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/id/struct.PidHandle.html b/main/os/task/id/struct.PidHandle.html index 430d0ea4..9a90ac45 100644 --- a/main/os/task/id/struct.PidHandle.html +++ b/main/os/task/id/struct.PidHandle.html @@ -1,23 +1,22 @@ -PidHandle in os::task::id - Rust -

Struct os::task::id::PidHandle

source ·
pub struct PidHandle(pub usize);

Tuple Fields§

§0: usize

Trait Implementations§

source§

impl Drop for PidHandle

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +PidHandle in os::task::id - Rust

Struct os::task::id::PidHandle

source ·
pub struct PidHandle(pub usize);

Tuple Fields§

§0: usize

Trait Implementations§

source§

impl Drop for PidHandle

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/id/struct.RecycleAllocator.html b/main/os/task/id/struct.RecycleAllocator.html index fd834bc0..dea20b5b 100644 --- a/main/os/task/id/struct.RecycleAllocator.html +++ b/main/os/task/id/struct.RecycleAllocator.html @@ -1,26 +1,25 @@ -RecycleAllocator in os::task::id - Rust -

Struct os::task::id::RecycleAllocator

source ·
pub struct RecycleAllocator {
+RecycleAllocator in os::task::id - Rust

Struct os::task::id::RecycleAllocator

source ·
pub struct RecycleAllocator {
     current: usize,
     recycled: Vec<usize>,
-}

Fields§

§current: usize§recycled: Vec<usize>

Implementations§

source§

impl RecycleAllocator

source

pub fn new() -> Self

source

pub fn alloc(&mut self) -> usize

source

pub fn dealloc(&mut self, id: usize)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§current: usize§recycled: Vec<usize>

Implementations§

source§

impl RecycleAllocator

source

pub fn new() -> Self

source

pub fn alloc(&mut self) -> usize

source

pub fn dealloc(&mut self, id: usize)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/id/struct.TaskUserRes.html b/main/os/task/id/struct.TaskUserRes.html index 30c72ef2..ad0887a1 100644 --- a/main/os/task/id/struct.TaskUserRes.html +++ b/main/os/task/id/struct.TaskUserRes.html @@ -1,5 +1,4 @@ -TaskUserRes in os::task::id - Rust -

Struct os::task::id::TaskUserRes

source ·
pub struct TaskUserRes {
+TaskUserRes in os::task::id - Rust

Struct os::task::id::TaskUserRes

source ·
pub struct TaskUserRes {
     pub tid: usize,
     pub ustack_base: usize,
     pub process: Weak<ProcessControlBlock>,
@@ -7,25 +6,25 @@
     process: Arc<ProcessControlBlock>,
     ustack_base: usize,
     alloc_user_res: bool
-) -> Self

source

pub fn alloc_user_res(&self)

source

fn dealloc_user_res(&self)

source

pub fn alloc_tid(&mut self)

source

pub fn dealloc_tid(&self)

source

pub fn trap_cx_user_va(&self) -> usize

source

pub fn trap_cx_ppn(&self) -> PhysPageNum

source

pub fn ustack_base(&self) -> usize

source

pub fn ustack_top(&self) -> usize

Trait Implementations§

source§

impl Drop for TaskUserRes

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Self

source

pub fn alloc_user_res(&self)

source

fn dealloc_user_res(&self)

source

pub fn alloc_tid(&mut self)

source

pub fn dealloc_tid(&self)

source

pub fn trap_cx_user_va(&self) -> usize

source

pub fn trap_cx_ppn(&self) -> PhysPageNum

source

pub fn ustack_base(&self) -> usize

source

pub fn ustack_top(&self) -> usize

Trait Implementations§

source§

impl Drop for TaskUserRes

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/index.html b/main/os/task/index.html index 1ed4cad0..8c54df54 100644 --- a/main/os/task/index.html +++ b/main/os/task/index.html @@ -1,2 +1 @@ -os::task - Rust -

Module os::task

source ·

Re-exports

Modules

Structs

Functions

\ No newline at end of file +os::task - Rust

Module os::task

source ·

Re-exports§

Modules§

Structs§

Functions§

\ No newline at end of file diff --git a/main/os/task/manager/fn.add_task.html b/main/os/task/manager/fn.add_task.html index bb7247ca..636a52fe 100644 --- a/main/os/task/manager/fn.add_task.html +++ b/main/os/task/manager/fn.add_task.html @@ -1,2 +1 @@ -add_task in os::task::manager - Rust -

Function os::task::manager::add_task

source ·
pub fn add_task(task: Arc<TaskControlBlock>)
\ No newline at end of file +add_task in os::task::manager - Rust

Function os::task::manager::add_task

source ·
pub fn add_task(task: Arc<TaskControlBlock>)
\ No newline at end of file diff --git a/main/os/task/manager/fn.fetch_task.html b/main/os/task/manager/fn.fetch_task.html index 1a229770..9b5cc270 100644 --- a/main/os/task/manager/fn.fetch_task.html +++ b/main/os/task/manager/fn.fetch_task.html @@ -1,2 +1 @@ -fetch_task in os::task::manager - Rust -

Function os::task::manager::fetch_task

source ·
pub fn fetch_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file +fetch_task in os::task::manager - Rust

Function os::task::manager::fetch_task

source ·
pub fn fetch_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/main/os/task/manager/fn.insert_into_pid2process.html b/main/os/task/manager/fn.insert_into_pid2process.html index 2198f2bd..d2e7d35f 100644 --- a/main/os/task/manager/fn.insert_into_pid2process.html +++ b/main/os/task/manager/fn.insert_into_pid2process.html @@ -1,2 +1 @@ -insert_into_pid2process in os::task::manager - Rust -
pub fn insert_into_pid2process(pid: usize, process: Arc<ProcessControlBlock>)
\ No newline at end of file +insert_into_pid2process in os::task::manager - Rust

Function os::task::manager::insert_into_pid2process

source ·
pub fn insert_into_pid2process(pid: usize, process: Arc<ProcessControlBlock>)
\ No newline at end of file diff --git a/main/os/task/manager/fn.pid2process.html b/main/os/task/manager/fn.pid2process.html index 694aac9b..ba85f616 100644 --- a/main/os/task/manager/fn.pid2process.html +++ b/main/os/task/manager/fn.pid2process.html @@ -1,2 +1 @@ -pid2process in os::task::manager - Rust -

Function os::task::manager::pid2process

source ·
pub fn pid2process(pid: usize) -> Option<Arc<ProcessControlBlock>>
\ No newline at end of file +pid2process in os::task::manager - Rust

Function os::task::manager::pid2process

source ·
pub fn pid2process(pid: usize) -> Option<Arc<ProcessControlBlock>>
\ No newline at end of file diff --git a/main/os/task/manager/fn.remove_from_pid2process.html b/main/os/task/manager/fn.remove_from_pid2process.html index 09681e66..d7662d8a 100644 --- a/main/os/task/manager/fn.remove_from_pid2process.html +++ b/main/os/task/manager/fn.remove_from_pid2process.html @@ -1,2 +1 @@ -remove_from_pid2process in os::task::manager - Rust -
pub fn remove_from_pid2process(pid: usize)
\ No newline at end of file +remove_from_pid2process in os::task::manager - Rust

Function os::task::manager::remove_from_pid2process

source ·
pub fn remove_from_pid2process(pid: usize)
\ No newline at end of file diff --git a/main/os/task/manager/fn.wakeup_task.html b/main/os/task/manager/fn.wakeup_task.html index d249394b..3f769991 100644 --- a/main/os/task/manager/fn.wakeup_task.html +++ b/main/os/task/manager/fn.wakeup_task.html @@ -1,2 +1 @@ -wakeup_task in os::task::manager - Rust -

Function os::task::manager::wakeup_task

source ·
pub fn wakeup_task(task: Arc<TaskControlBlock>)
\ No newline at end of file +wakeup_task in os::task::manager - Rust

Function os::task::manager::wakeup_task

source ·
pub fn wakeup_task(task: Arc<TaskControlBlock>)
\ No newline at end of file diff --git a/main/os/task/manager/index.html b/main/os/task/manager/index.html index 61ce0ada..cb71e3e1 100644 --- a/main/os/task/manager/index.html +++ b/main/os/task/manager/index.html @@ -1,2 +1 @@ -os::task::manager - Rust -
\ No newline at end of file +os::task::manager - Rust
\ No newline at end of file diff --git a/main/os/task/manager/struct.PID2PCB.html b/main/os/task/manager/struct.PID2PCB.html index 54902cf3..a9289108 100644 --- a/main/os/task/manager/struct.PID2PCB.html +++ b/main/os/task/manager/struct.PID2PCB.html @@ -1,27 +1,26 @@ -PID2PCB in os::task::manager - Rust -

Struct os::task::manager::PID2PCB

source ·
pub struct PID2PCB {
+PID2PCB in os::task::manager - Rust

Struct os::task::manager::PID2PCB

source ·
pub struct PID2PCB {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for PID2PCB

§

type Target = UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>

Dereferences the value.
source§

impl LazyStatic for PID2PCB

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for PID2PCB

§

type Target = UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>

Dereferences the value.
source§

impl LazyStatic for PID2PCB

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/manager/struct.TASK_MANAGER.html b/main/os/task/manager/struct.TASK_MANAGER.html index c94f1237..551fb456 100644 --- a/main/os/task/manager/struct.TASK_MANAGER.html +++ b/main/os/task/manager/struct.TASK_MANAGER.html @@ -1,27 +1,26 @@ -TASK_MANAGER in os::task::manager - Rust -

Struct os::task::manager::TASK_MANAGER

source ·
pub struct TASK_MANAGER {
+TASK_MANAGER in os::task::manager - Rust

Struct os::task::manager::TASK_MANAGER

source ·
pub struct TASK_MANAGER {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<TaskManager>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for TASK_MANAGER

§

type Target = UPIntrFreeCell<TaskManager>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<TaskManager>

Dereferences the value.
source§

impl LazyStatic for TASK_MANAGER

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for TASK_MANAGER

§

type Target = UPIntrFreeCell<TaskManager>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<TaskManager>

Dereferences the value.
source§

impl LazyStatic for TASK_MANAGER

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/manager/struct.TaskManager.html b/main/os/task/manager/struct.TaskManager.html index cad3f390..6d840ec5 100644 --- a/main/os/task/manager/struct.TaskManager.html +++ b/main/os/task/manager/struct.TaskManager.html @@ -1,26 +1,25 @@ -TaskManager in os::task::manager - Rust -

Struct os::task::manager::TaskManager

source ·
pub struct TaskManager {
+TaskManager in os::task::manager - Rust

Struct os::task::manager::TaskManager

source ·
pub struct TaskManager {
     ready_queue: VecDeque<Arc<TaskControlBlock>>,
 }

Fields§

§ready_queue: VecDeque<Arc<TaskControlBlock>>

Implementations§

source§

impl TaskManager

A simple FIFO scheduler.

-
source

pub fn new() -> Self

source

pub fn add(&mut self, task: Arc<TaskControlBlock>)

source

pub fn fetch(&mut self) -> Option<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +
source

pub fn new() -> Self

source

pub fn add(&mut self, task: Arc<TaskControlBlock>)

source

pub fn fetch(&mut self) -> Option<Arc<TaskControlBlock>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/process/index.html b/main/os/task/process/index.html index 9cb0277e..0d863745 100644 --- a/main/os/task/process/index.html +++ b/main/os/task/process/index.html @@ -1,2 +1 @@ -os::task::process - Rust -
\ No newline at end of file +os::task::process - Rust
\ No newline at end of file diff --git a/main/os/task/process/struct.ProcessControlBlock.html b/main/os/task/process/struct.ProcessControlBlock.html index 7c5d273f..f05c3bc0 100644 --- a/main/os/task/process/struct.ProcessControlBlock.html +++ b/main/os/task/process/struct.ProcessControlBlock.html @@ -1,30 +1,29 @@ -ProcessControlBlock in os::task::process - Rust -
pub struct ProcessControlBlock {
+ProcessControlBlock in os::task::process - Rust

Struct os::task::process::ProcessControlBlock

source ·
pub struct ProcessControlBlock {
     pub pid: PidHandle,
     inner: UPIntrFreeCell<ProcessControlBlockInner>,
 }

Fields§

§pid: PidHandle§inner: UPIntrFreeCell<ProcessControlBlockInner>

Implementations§

source§

impl ProcessControlBlock

source

pub fn inner_exclusive_access( &self ) -> UPIntrRefMut<'_, ProcessControlBlockInner>

source

pub fn new(elf_data: &[u8]) -> Arc<Self>

source

pub fn exec(self: &Arc<Self>, elf_data: &[u8], args: Vec<String>)

Only support processes with a single thread.

source

pub fn fork(self: &Arc<Self>) -> Arc<Self>

Only support processes with a single thread.

-
source

pub fn getpid(&self) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

source

pub fn getpid(&self) -> usize

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/process/struct.ProcessControlBlockInner.html b/main/os/task/process/struct.ProcessControlBlockInner.html index f3be5c68..6c324d41 100644 --- a/main/os/task/process/struct.ProcessControlBlockInner.html +++ b/main/os/task/process/struct.ProcessControlBlockInner.html @@ -1,5 +1,4 @@ -ProcessControlBlockInner in os::task::process - Rust -
pub struct ProcessControlBlockInner {
+ProcessControlBlockInner in os::task::process - Rust

Struct os::task::process::ProcessControlBlockInner

source ·
pub struct ProcessControlBlockInner {
     pub is_zombie: bool,
     pub memory_set: MemorySet,
     pub parent: Option<Weak<ProcessControlBlock>>,
@@ -12,25 +11,25 @@
     pub mutex_list: Vec<Option<Arc<dyn Mutex>>>,
     pub semaphore_list: Vec<Option<Arc<Semaphore>>>,
     pub condvar_list: Vec<Option<Arc<Condvar>>>,
-}

Fields§

§is_zombie: bool§memory_set: MemorySet§parent: Option<Weak<ProcessControlBlock>>§children: Vec<Arc<ProcessControlBlock>>§exit_code: i32§fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>§signals: SignalFlags§tasks: Vec<Option<Arc<TaskControlBlock>>>§task_res_allocator: RecycleAllocator§mutex_list: Vec<Option<Arc<dyn Mutex>>>§semaphore_list: Vec<Option<Arc<Semaphore>>>§condvar_list: Vec<Option<Arc<Condvar>>>

Implementations§

source§

impl ProcessControlBlockInner

source

pub fn get_user_token(&self) -> usize

source

pub fn alloc_fd(&mut self) -> usize

source

pub fn alloc_tid(&mut self) -> usize

source

pub fn dealloc_tid(&mut self, tid: usize)

source

pub fn thread_count(&self) -> usize

source

pub fn get_task(&self, tid: usize) -> Arc<TaskControlBlock>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§is_zombie: bool§memory_set: MemorySet§parent: Option<Weak<ProcessControlBlock>>§children: Vec<Arc<ProcessControlBlock>>§exit_code: i32§fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>§signals: SignalFlags§tasks: Vec<Option<Arc<TaskControlBlock>>>§task_res_allocator: RecycleAllocator§mutex_list: Vec<Option<Arc<dyn Mutex>>>§semaphore_list: Vec<Option<Arc<Semaphore>>>§condvar_list: Vec<Option<Arc<Condvar>>>

Implementations§

source§

impl ProcessControlBlockInner

source

pub fn get_user_token(&self) -> usize

source

pub fn alloc_fd(&mut self) -> usize

source

pub fn alloc_tid(&mut self) -> usize

source

pub fn dealloc_tid(&mut self, tid: usize)

source

pub fn thread_count(&self) -> usize

source

pub fn get_task(&self, tid: usize) -> Arc<TaskControlBlock>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/processor/fn.current_kstack_top.html b/main/os/task/processor/fn.current_kstack_top.html index ca147cd2..d7b2d08a 100644 --- a/main/os/task/processor/fn.current_kstack_top.html +++ b/main/os/task/processor/fn.current_kstack_top.html @@ -1,2 +1 @@ -current_kstack_top in os::task::processor - Rust -
pub fn current_kstack_top() -> usize
\ No newline at end of file +current_kstack_top in os::task::processor - Rust

Function os::task::processor::current_kstack_top

source ·
pub fn current_kstack_top() -> usize
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_process.html b/main/os/task/processor/fn.current_process.html index b2f9b12e..e8b72a53 100644 --- a/main/os/task/processor/fn.current_process.html +++ b/main/os/task/processor/fn.current_process.html @@ -1,2 +1 @@ -current_process in os::task::processor - Rust -

Function os::task::processor::current_process

source ·
pub fn current_process() -> Arc<ProcessControlBlock>
\ No newline at end of file +current_process in os::task::processor - Rust

Function os::task::processor::current_process

source ·
pub fn current_process() -> Arc<ProcessControlBlock>
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_task.html b/main/os/task/processor/fn.current_task.html index ec3119b3..669e34f8 100644 --- a/main/os/task/processor/fn.current_task.html +++ b/main/os/task/processor/fn.current_task.html @@ -1,2 +1 @@ -current_task in os::task::processor - Rust -

Function os::task::processor::current_task

source ·
pub fn current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file +current_task in os::task::processor - Rust

Function os::task::processor::current_task

source ·
pub fn current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_trap_cx.html b/main/os/task/processor/fn.current_trap_cx.html index 9730ea2e..ede8d80a 100644 --- a/main/os/task/processor/fn.current_trap_cx.html +++ b/main/os/task/processor/fn.current_trap_cx.html @@ -1,2 +1 @@ -current_trap_cx in os::task::processor - Rust -

Function os::task::processor::current_trap_cx

source ·
pub fn current_trap_cx() -> &'static mut TrapContext
\ No newline at end of file +current_trap_cx in os::task::processor - Rust

Function os::task::processor::current_trap_cx

source ·
pub fn current_trap_cx() -> &'static mut TrapContext
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_trap_cx_user_va.html b/main/os/task/processor/fn.current_trap_cx_user_va.html index 0b258892..5adcf656 100644 --- a/main/os/task/processor/fn.current_trap_cx_user_va.html +++ b/main/os/task/processor/fn.current_trap_cx_user_va.html @@ -1,2 +1 @@ -current_trap_cx_user_va in os::task::processor - Rust -
pub fn current_trap_cx_user_va() -> usize
\ No newline at end of file +current_trap_cx_user_va in os::task::processor - Rust

Function os::task::processor::current_trap_cx_user_va

source ·
pub fn current_trap_cx_user_va() -> usize
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_user_token.html b/main/os/task/processor/fn.current_user_token.html index 3633979c..9e9330c4 100644 --- a/main/os/task/processor/fn.current_user_token.html +++ b/main/os/task/processor/fn.current_user_token.html @@ -1,2 +1 @@ -current_user_token in os::task::processor - Rust -
pub fn current_user_token() -> usize
\ No newline at end of file +current_user_token in os::task::processor - Rust

Function os::task::processor::current_user_token

source ·
pub fn current_user_token() -> usize
\ No newline at end of file diff --git a/main/os/task/processor/fn.run_tasks.html b/main/os/task/processor/fn.run_tasks.html index 39b7d06f..5f023125 100644 --- a/main/os/task/processor/fn.run_tasks.html +++ b/main/os/task/processor/fn.run_tasks.html @@ -1,2 +1 @@ -run_tasks in os::task::processor - Rust -

Function os::task::processor::run_tasks

source ·
pub fn run_tasks()
\ No newline at end of file +run_tasks in os::task::processor - Rust

Function os::task::processor::run_tasks

source ·
pub fn run_tasks()
\ No newline at end of file diff --git a/main/os/task/processor/fn.schedule.html b/main/os/task/processor/fn.schedule.html index 3587ea46..87fb417d 100644 --- a/main/os/task/processor/fn.schedule.html +++ b/main/os/task/processor/fn.schedule.html @@ -1,2 +1 @@ -schedule in os::task::processor - Rust -

Function os::task::processor::schedule

source ·
pub fn schedule(switched_task_cx_ptr: *mut TaskContext)
\ No newline at end of file +schedule in os::task::processor - Rust

Function os::task::processor::schedule

source ·
pub fn schedule(switched_task_cx_ptr: *mut TaskContext)
\ No newline at end of file diff --git a/main/os/task/processor/fn.take_current_task.html b/main/os/task/processor/fn.take_current_task.html index f26d821c..1cc8c6f5 100644 --- a/main/os/task/processor/fn.take_current_task.html +++ b/main/os/task/processor/fn.take_current_task.html @@ -1,2 +1 @@ -take_current_task in os::task::processor - Rust -
pub fn take_current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file +take_current_task in os::task::processor - Rust

Function os::task::processor::take_current_task

source ·
pub fn take_current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/main/os/task/processor/index.html b/main/os/task/processor/index.html index 40e40f0a..8674a144 100644 --- a/main/os/task/processor/index.html +++ b/main/os/task/processor/index.html @@ -1,2 +1 @@ -os::task::processor - Rust -
\ No newline at end of file +os::task::processor - Rust
\ No newline at end of file diff --git a/main/os/task/processor/struct.PROCESSOR.html b/main/os/task/processor/struct.PROCESSOR.html index 5f0d56b0..a08bf1ba 100644 --- a/main/os/task/processor/struct.PROCESSOR.html +++ b/main/os/task/processor/struct.PROCESSOR.html @@ -1,27 +1,26 @@ -PROCESSOR in os::task::processor - Rust -

Struct os::task::processor::PROCESSOR

source ·
pub struct PROCESSOR {
+PROCESSOR in os::task::processor - Rust

Struct os::task::processor::PROCESSOR

source ·
pub struct PROCESSOR {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Processor>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for PROCESSOR

§

type Target = UPIntrFreeCell<Processor>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Processor>

Dereferences the value.
source§

impl LazyStatic for PROCESSOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for PROCESSOR

§

type Target = UPIntrFreeCell<Processor>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<Processor>

Dereferences the value.
source§

impl LazyStatic for PROCESSOR

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/processor/struct.Processor.html b/main/os/task/processor/struct.Processor.html index c1a429eb..2b678818 100644 --- a/main/os/task/processor/struct.Processor.html +++ b/main/os/task/processor/struct.Processor.html @@ -1,26 +1,25 @@ -Processor in os::task::processor - Rust -

Struct os::task::processor::Processor

source ·
pub struct Processor {
+Processor in os::task::processor - Rust

Struct os::task::processor::Processor

source ·
pub struct Processor {
     current: Option<Arc<TaskControlBlock>>,
     idle_task_cx: TaskContext,
-}

Fields§

§current: Option<Arc<TaskControlBlock>>§idle_task_cx: TaskContext

Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§current: Option<Arc<TaskControlBlock>>§idle_task_cx: TaskContext

Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/signal/index.html b/main/os/task/signal/index.html index df548f85..a71053e6 100644 --- a/main/os/task/signal/index.html +++ b/main/os/task/signal/index.html @@ -1,2 +1 @@ -os::task::signal - Rust -
\ No newline at end of file +os::task::signal - Rust

Module os::task::signal

source ·

Structs§

\ No newline at end of file diff --git a/main/os/task/signal/struct.SignalFlags.html b/main/os/task/signal/struct.SignalFlags.html index 7f07464c..df04113b 100644 --- a/main/os/task/signal/struct.SignalFlags.html +++ b/main/os/task/signal/struct.SignalFlags.html @@ -1,5 +1,4 @@ -SignalFlags in os::task::signal - Rust -

Struct os::task::signal::SignalFlags

source ·
pub struct SignalFlags {
+SignalFlags in os::task::signal - Rust

Struct os::task::signal::SignalFlags

source ·
pub struct SignalFlags {
     bits: u32,
 }

Fields§

§bits: u32

Implementations§

source§

impl SignalFlags

source

pub const SIGINT: Self = _

source

pub const SIGILL: Self = _

source

pub const SIGABRT: Self = _

source

pub const SIGFPE: Self = _

source

pub const SIGSEGV: Self = _

source

pub const fn empty() -> Self

Returns an empty set of flags.

source

pub const fn all() -> Self

Returns the set containing all flags.

@@ -10,7 +9,7 @@ representation contains bits that do not correspond to a flag.

that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u32) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

-
Safety
+
§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that @@ -59,34 +58,34 @@ not set in self, but which are allowed for this type.

between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
source§

impl SignalFlags

source

pub fn check_error(&self) -> Option<(i32, &'static str)>

Trait Implementations§

source§

impl Binary for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for SignalFlags

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
§

type Output = SignalFlags

The resulting type after applying the & operator.
source§

impl BitAndAssign for SignalFlags

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
source§

impl SignalFlags

source

pub fn check_error(&self) -> Option<(i32, &'static str)>

Trait Implementations§

source§

impl Binary for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd for SignalFlags

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
§

type Output = SignalFlags

The resulting type after applying the & operator.
source§

impl BitAndAssign for SignalFlags

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr for SignalFlags

source§

fn bitor(self, other: SignalFlags) -> Self

Returns the union of the two sets of flags.

-
§

type Output = SignalFlags

The resulting type after applying the | operator.
source§

impl BitOrAssign for SignalFlags

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
§

type Output = SignalFlags

The resulting type after applying the | operator.
source§

impl BitOrAssign for SignalFlags

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor for SignalFlags

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
§

type Output = SignalFlags

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for SignalFlags

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
source§

impl Clone for SignalFlags

source§

fn clone(&self) -> SignalFlags

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<SignalFlags> for SignalFlags

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<SignalFlags> for SignalFlags

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for SignalFlags

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

§

type Output = SignalFlags

The resulting type after applying the ^ operator.
source§

impl BitXorAssign for SignalFlags

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
source§

impl Clone for SignalFlags

source§

fn clone(&self) -> SignalFlags

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<SignalFlags> for SignalFlags

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<SignalFlags> for SignalFlags

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for SignalFlags

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for SignalFlags

source§

fn not(self) -> Self

Returns the complement of this set of flags.

-
§

type Output = SignalFlags

The resulting type after applying the ! operator.
source§

impl Octal for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for SignalFlags

source§

fn cmp(&self, other: &SignalFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for SignalFlags

source§

fn not(self) -> Self

Returns the complement of this set of flags.

+
§

type Output = SignalFlags

The resulting type after applying the ! operator.
source§

impl Octal for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for SignalFlags

source§

fn cmp(&self, other: &SignalFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for SignalFlags

source§

fn eq(&self, other: &SignalFlags) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for SignalFlags

source§

fn partial_cmp(&self, other: &SignalFlags) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for SignalFlags

source§

fn partial_cmp(&self, other: &SignalFlags) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub for SignalFlags

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

§

type Output = SignalFlags

The resulting type after applying the - operator.
source§

impl SubAssign for SignalFlags

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
source§

impl UpperHex for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for SignalFlags

source§

impl Eq for SignalFlags

source§

impl StructuralEq for SignalFlags

source§

impl StructuralPartialEq for SignalFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

source§

impl UpperHex for SignalFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for SignalFlags

source§

impl Eq for SignalFlags

source§

impl StructuralPartialEq for SignalFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -94,9 +93,9 @@ operator. OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/struct.INITPROC.html b/main/os/task/struct.INITPROC.html index 0b99e226..a10dbb89 100644 --- a/main/os/task/struct.INITPROC.html +++ b/main/os/task/struct.INITPROC.html @@ -1,25 +1,24 @@ -INITPROC in os::task - Rust -

Struct os::task::INITPROC

source ·
pub struct INITPROC {
+INITPROC in os::task - Rust

Struct os::task::INITPROC

source ·
pub struct INITPROC {
     __private_field: (),
-}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for INITPROC

§

type Target = Arc<ProcessControlBlock>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<ProcessControlBlock>

Dereferences the value.
source§

impl LazyStatic for INITPROC

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§__private_field: ()

Trait Implementations§

source§

impl Deref for INITPROC

§

type Target = Arc<ProcessControlBlock>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Arc<ProcessControlBlock>

Dereferences the value.
source§

impl LazyStatic for INITPROC

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/switch/fn.__switch.html b/main/os/task/switch/fn.__switch.html index f49f6cbd..834e0f04 100644 --- a/main/os/task/switch/fn.__switch.html +++ b/main/os/task/switch/fn.__switch.html @@ -1,5 +1,4 @@ -__switch in os::task::switch - Rust -

Function os::task::switch::__switch

source ·
pub unsafe extern "C" fn __switch(
+__switch in os::task::switch - Rust

Function os::task::switch::__switch

source ·
pub unsafe extern "C" fn __switch(
     current_task_cx_ptr: *mut TaskContext,
     next_task_cx_ptr: *const TaskContext
 )
\ No newline at end of file diff --git a/main/os/task/switch/index.html b/main/os/task/switch/index.html index 08314e85..d7d3e4fb 100644 --- a/main/os/task/switch/index.html +++ b/main/os/task/switch/index.html @@ -1,2 +1 @@ -os::task::switch - Rust -
\ No newline at end of file +os::task::switch - Rust

Module os::task::switch

source ·

Functions§

\ No newline at end of file diff --git a/main/os/task/task/enum.TaskStatus.html b/main/os/task/task/enum.TaskStatus.html index d4c4da45..7743ceef 100644 --- a/main/os/task/task/enum.TaskStatus.html +++ b/main/os/task/task/enum.TaskStatus.html @@ -1,20 +1,19 @@ -TaskStatus in os::task::task - Rust -

Enum os::task::task::TaskStatus

source ·
pub enum TaskStatus {
+TaskStatus in os::task::task - Rust

Enum os::task::task::TaskStatus

source ·
pub enum TaskStatus {
     Ready,
     Running,
     Blocked,
 }

Variants§

§

Ready

§

Running

§

Blocked

Trait Implementations§

source§

impl Clone for TaskStatus

source§

fn clone(&self) -> TaskStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl PartialEq for TaskStatus

source§

fn eq(&self, other: &TaskStatus) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for TaskStatus

source§

impl StructuralPartialEq for TaskStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

source§

impl Copy for TaskStatus

source§

impl StructuralPartialEq for TaskStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where @@ -22,9 +21,9 @@ sufficient, and should not be overridden without very good reason.
OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/task/index.html b/main/os/task/task/index.html index 5b1852f3..77f2ef3b 100644 --- a/main/os/task/task/index.html +++ b/main/os/task/task/index.html @@ -1,2 +1 @@ -os::task::task - Rust -
\ No newline at end of file +os::task::task - Rust
\ No newline at end of file diff --git a/main/os/task/task/struct.TaskControlBlock.html b/main/os/task/task/struct.TaskControlBlock.html index af08f406..d61fc6c6 100644 --- a/main/os/task/task/struct.TaskControlBlock.html +++ b/main/os/task/task/struct.TaskControlBlock.html @@ -1,5 +1,4 @@ -TaskControlBlock in os::task::task - Rust -

Struct os::task::task::TaskControlBlock

source ·
pub struct TaskControlBlock {
+TaskControlBlock in os::task::task - Rust

Struct os::task::task::TaskControlBlock

source ·
pub struct TaskControlBlock {
     pub process: Weak<ProcessControlBlock>,
     pub kstack: KernelStack,
     pub inner: UPIntrFreeCell<TaskControlBlockInner>,
@@ -7,25 +6,25 @@
     process: Arc<ProcessControlBlock>,
     ustack_base: usize,
     alloc_user_res: bool
-) -> Self

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Self

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/task/task/struct.TaskControlBlockInner.html b/main/os/task/task/struct.TaskControlBlockInner.html index 79fe479e..2d8dc5d2 100644 --- a/main/os/task/task/struct.TaskControlBlockInner.html +++ b/main/os/task/task/struct.TaskControlBlockInner.html @@ -1,29 +1,28 @@ -TaskControlBlockInner in os::task::task - Rust -
pub struct TaskControlBlockInner {
+TaskControlBlockInner in os::task::task - Rust

Struct os::task::task::TaskControlBlockInner

source ·
pub struct TaskControlBlockInner {
     pub res: Option<TaskUserRes>,
     pub trap_cx_ppn: PhysPageNum,
     pub task_cx: TaskContext,
     pub task_status: TaskStatus,
     pub exit_code: Option<i32>,
-}

Fields§

§res: Option<TaskUserRes>§trap_cx_ppn: PhysPageNum§task_cx: TaskContext§task_status: TaskStatus§exit_code: Option<i32>

Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§res: Option<TaskUserRes>§trap_cx_ppn: PhysPageNum§task_cx: TaskContext§task_status: TaskStatus§exit_code: Option<i32>

Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/timer/constant.MSEC_PER_SEC.html b/main/os/timer/constant.MSEC_PER_SEC.html index e82b6e65..f479e465 100644 --- a/main/os/timer/constant.MSEC_PER_SEC.html +++ b/main/os/timer/constant.MSEC_PER_SEC.html @@ -1,2 +1 @@ -MSEC_PER_SEC in os::timer - Rust -

Constant os::timer::MSEC_PER_SEC

source ·
const MSEC_PER_SEC: usize = 1000;
\ No newline at end of file +MSEC_PER_SEC in os::timer - Rust

Constant os::timer::MSEC_PER_SEC

source ·
const MSEC_PER_SEC: usize = 1000;
\ No newline at end of file diff --git a/main/os/timer/constant.TICKS_PER_SEC.html b/main/os/timer/constant.TICKS_PER_SEC.html index 9de84457..a5b4e51e 100644 --- a/main/os/timer/constant.TICKS_PER_SEC.html +++ b/main/os/timer/constant.TICKS_PER_SEC.html @@ -1,2 +1 @@ -TICKS_PER_SEC in os::timer - Rust -

Constant os::timer::TICKS_PER_SEC

source ·
const TICKS_PER_SEC: usize = 100;
\ No newline at end of file +TICKS_PER_SEC in os::timer - Rust

Constant os::timer::TICKS_PER_SEC

source ·
const TICKS_PER_SEC: usize = 100;
\ No newline at end of file diff --git a/main/os/timer/fn.add_timer.html b/main/os/timer/fn.add_timer.html index fa414d6e..821819d1 100644 --- a/main/os/timer/fn.add_timer.html +++ b/main/os/timer/fn.add_timer.html @@ -1,2 +1 @@ -add_timer in os::timer - Rust -

Function os::timer::add_timer

source ·
pub fn add_timer(expire_ms: usize, task: Arc<TaskControlBlock>)
\ No newline at end of file +add_timer in os::timer - Rust

Function os::timer::add_timer

source ·
pub fn add_timer(expire_ms: usize, task: Arc<TaskControlBlock>)
\ No newline at end of file diff --git a/main/os/timer/fn.check_timer.html b/main/os/timer/fn.check_timer.html index d69ae438..039fef93 100644 --- a/main/os/timer/fn.check_timer.html +++ b/main/os/timer/fn.check_timer.html @@ -1,2 +1 @@ -check_timer in os::timer - Rust -

Function os::timer::check_timer

source ·
pub fn check_timer()
\ No newline at end of file +check_timer in os::timer - Rust

Function os::timer::check_timer

source ·
pub fn check_timer()
\ No newline at end of file diff --git a/main/os/timer/fn.get_time.html b/main/os/timer/fn.get_time.html index c7ea1f92..410c9fee 100644 --- a/main/os/timer/fn.get_time.html +++ b/main/os/timer/fn.get_time.html @@ -1,2 +1 @@ -get_time in os::timer - Rust -

Function os::timer::get_time

source ·
pub fn get_time() -> usize
\ No newline at end of file +get_time in os::timer - Rust

Function os::timer::get_time

source ·
pub fn get_time() -> usize
\ No newline at end of file diff --git a/main/os/timer/fn.get_time_ms.html b/main/os/timer/fn.get_time_ms.html index 8cc7776e..a5105f4a 100644 --- a/main/os/timer/fn.get_time_ms.html +++ b/main/os/timer/fn.get_time_ms.html @@ -1,2 +1 @@ -get_time_ms in os::timer - Rust -

Function os::timer::get_time_ms

source ·
pub fn get_time_ms() -> usize
\ No newline at end of file +get_time_ms in os::timer - Rust

Function os::timer::get_time_ms

source ·
pub fn get_time_ms() -> usize
\ No newline at end of file diff --git a/main/os/timer/fn.set_next_trigger.html b/main/os/timer/fn.set_next_trigger.html index 6cd66fd7..ec6ccdc7 100644 --- a/main/os/timer/fn.set_next_trigger.html +++ b/main/os/timer/fn.set_next_trigger.html @@ -1,2 +1 @@ -set_next_trigger in os::timer - Rust -

Function os::timer::set_next_trigger

source ·
pub fn set_next_trigger()
\ No newline at end of file +set_next_trigger in os::timer - Rust

Function os::timer::set_next_trigger

source ·
pub fn set_next_trigger()
\ No newline at end of file diff --git a/main/os/timer/index.html b/main/os/timer/index.html index 1ea2a277..598fedd2 100644 --- a/main/os/timer/index.html +++ b/main/os/timer/index.html @@ -1,2 +1 @@ -os::timer - Rust -
\ No newline at end of file +os::timer - Rust
\ No newline at end of file diff --git a/main/os/timer/struct.TIMERS.html b/main/os/timer/struct.TIMERS.html index fff5310e..982b2a96 100644 --- a/main/os/timer/struct.TIMERS.html +++ b/main/os/timer/struct.TIMERS.html @@ -1,27 +1,26 @@ -TIMERS in os::timer - Rust -

Struct os::timer::TIMERS

source ·
struct TIMERS {
+TIMERS in os::timer - Rust

Struct os::timer::TIMERS

source ·
struct TIMERS {
     __private_field: (),
 }

Fields§

§__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BinaryHeap<TimerCondVar>>>§

source

pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T>

Panic if the data has been borrowed.

source

pub fn exclusive_session<F, V>(&self, f: F) -> V
where - F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for TIMERS

§

type Target = UPIntrFreeCell<BinaryHeap<TimerCondVar>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<BinaryHeap<TimerCondVar>>

Dereferences the value.
source§

impl LazyStatic for TIMERS

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + F: FnOnce(&mut T) -> V,

Trait Implementations§

source§

impl Deref for TIMERS

§

type Target = UPIntrFreeCell<BinaryHeap<TimerCondVar>>

The resulting type after dereferencing.
source§

fn deref(&self) -> &UPIntrFreeCell<BinaryHeap<TimerCondVar>>

Dereferences the value.
source§

impl LazyStatic for TIMERS

Auto Trait Implementations§

§

impl Freeze for TIMERS

§

impl RefUnwindSafe for TIMERS

§

impl Send for TIMERS

§

impl Sync for TIMERS

§

impl Unpin for TIMERS

§

impl UnwindSafe for TIMERS

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/timer/struct.TimerCondVar.html b/main/os/timer/struct.TimerCondVar.html index 83745322..1dc918ab 100644 --- a/main/os/timer/struct.TimerCondVar.html +++ b/main/os/timer/struct.TimerCondVar.html @@ -1,33 +1,32 @@ -TimerCondVar in os::timer - Rust -

Struct os::timer::TimerCondVar

source ·
pub struct TimerCondVar {
+TimerCondVar in os::timer - Rust

Struct os::timer::TimerCondVar

source ·
pub struct TimerCondVar {
     pub expire_ms: usize,
     pub task: Arc<TaskControlBlock>,
-}

Fields§

§expire_ms: usize§task: Arc<TaskControlBlock>

Trait Implementations§

source§

impl Ord for TimerCondVar

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where +}

Fields§

§expire_ms: usize§task: Arc<TaskControlBlock>

Trait Implementations§

source§

impl Ord for TimerCondVar

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for TimerCondVar

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for TimerCondVar

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for TimerCondVar

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.

source§

impl PartialOrd for TimerCondVar

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Eq for TimerCondVar

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/trap/context/index.html b/main/os/trap/context/index.html index 8378b446..40d4f782 100644 --- a/main/os/trap/context/index.html +++ b/main/os/trap/context/index.html @@ -1,2 +1 @@ -os::trap::context - Rust -
\ No newline at end of file +os::trap::context - Rust

Module os::trap::context

source ·

Structs§

\ No newline at end of file diff --git a/main/os/trap/context/struct.TrapContext.html b/main/os/trap/context/struct.TrapContext.html index eb964f54..2e99a3e2 100644 --- a/main/os/trap/context/struct.TrapContext.html +++ b/main/os/trap/context/struct.TrapContext.html @@ -1,5 +1,4 @@ -TrapContext in os::trap::context - Rust -

Struct os::trap::context::TrapContext

source ·
#[repr(C)]
pub struct TrapContext { +TrapContext in os::trap::context - Rust

Struct os::trap::context::TrapContext

source ·
#[repr(C)]
pub struct TrapContext { pub x: [usize; 32], pub sstatus: Sstatus, pub sepc: usize, @@ -12,25 +11,25 @@ kernel_satp: usize, kernel_sp: usize, trap_handler: usize -) -> Self

Trait Implementations§

source§

impl Debug for TrapContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Self

Trait Implementations§

source§

impl Debug for TrapContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where - Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Src: CheckedCast<Dst>,
source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where - Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where + Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where diff --git a/main/os/trap/fn.disable_supervisor_interrupt.html b/main/os/trap/fn.disable_supervisor_interrupt.html index 76cc44ae..1c6b0426 100644 --- a/main/os/trap/fn.disable_supervisor_interrupt.html +++ b/main/os/trap/fn.disable_supervisor_interrupt.html @@ -1,2 +1 @@ -disable_supervisor_interrupt in os::trap - Rust -
fn disable_supervisor_interrupt()
\ No newline at end of file +disable_supervisor_interrupt in os::trap - Rust

Function os::trap::disable_supervisor_interrupt

source ·
fn disable_supervisor_interrupt()
\ No newline at end of file diff --git a/main/os/trap/fn.enable_supervisor_interrupt.html b/main/os/trap/fn.enable_supervisor_interrupt.html index a26f1884..ec3bcd15 100644 --- a/main/os/trap/fn.enable_supervisor_interrupt.html +++ b/main/os/trap/fn.enable_supervisor_interrupt.html @@ -1,2 +1 @@ -enable_supervisor_interrupt in os::trap - Rust -
fn enable_supervisor_interrupt()
\ No newline at end of file +enable_supervisor_interrupt in os::trap - Rust

Function os::trap::enable_supervisor_interrupt

source ·
fn enable_supervisor_interrupt()
\ No newline at end of file diff --git a/main/os/trap/fn.enable_timer_interrupt.html b/main/os/trap/fn.enable_timer_interrupt.html index 39164240..4a3729e9 100644 --- a/main/os/trap/fn.enable_timer_interrupt.html +++ b/main/os/trap/fn.enable_timer_interrupt.html @@ -1,2 +1 @@ -enable_timer_interrupt in os::trap - Rust -
pub fn enable_timer_interrupt()
\ No newline at end of file +enable_timer_interrupt in os::trap - Rust

Function os::trap::enable_timer_interrupt

source ·
pub fn enable_timer_interrupt()
\ No newline at end of file diff --git a/main/os/trap/fn.init.html b/main/os/trap/fn.init.html index 7c851b75..ae9be208 100644 --- a/main/os/trap/fn.init.html +++ b/main/os/trap/fn.init.html @@ -1,2 +1 @@ -init in os::trap - Rust -

Function os::trap::init

source ·
pub fn init()
\ No newline at end of file +init in os::trap - Rust

Function os::trap::init

source ·
pub fn init()
\ No newline at end of file diff --git a/main/os/trap/fn.set_kernel_trap_entry.html b/main/os/trap/fn.set_kernel_trap_entry.html index 7681f0f3..8ad08760 100644 --- a/main/os/trap/fn.set_kernel_trap_entry.html +++ b/main/os/trap/fn.set_kernel_trap_entry.html @@ -1,2 +1 @@ -set_kernel_trap_entry in os::trap - Rust -

Function os::trap::set_kernel_trap_entry

source ·
fn set_kernel_trap_entry()
\ No newline at end of file +set_kernel_trap_entry in os::trap - Rust

Function os::trap::set_kernel_trap_entry

source ·
fn set_kernel_trap_entry()
\ No newline at end of file diff --git a/main/os/trap/fn.set_user_trap_entry.html b/main/os/trap/fn.set_user_trap_entry.html index 45ea8cff..081febfd 100644 --- a/main/os/trap/fn.set_user_trap_entry.html +++ b/main/os/trap/fn.set_user_trap_entry.html @@ -1,2 +1 @@ -set_user_trap_entry in os::trap - Rust -

Function os::trap::set_user_trap_entry

source ·
fn set_user_trap_entry()
\ No newline at end of file +set_user_trap_entry in os::trap - Rust

Function os::trap::set_user_trap_entry

source ·
fn set_user_trap_entry()
\ No newline at end of file diff --git a/main/os/trap/fn.trap_from_kernel.html b/main/os/trap/fn.trap_from_kernel.html index 607223ad..0d375e65 100644 --- a/main/os/trap/fn.trap_from_kernel.html +++ b/main/os/trap/fn.trap_from_kernel.html @@ -1,3 +1,2 @@ -trap_from_kernel in os::trap - Rust -

Function os::trap::trap_from_kernel

source ·
#[no_mangle]
+trap_from_kernel in os::trap - Rust

Function os::trap::trap_from_kernel

source ·
#[no_mangle]
 pub fn trap_from_kernel(_trap_cx: &TrapContext)
\ No newline at end of file diff --git a/main/os/trap/fn.trap_handler.html b/main/os/trap/fn.trap_handler.html index 73125352..96306437 100644 --- a/main/os/trap/fn.trap_handler.html +++ b/main/os/trap/fn.trap_handler.html @@ -1,3 +1,2 @@ -trap_handler in os::trap - Rust -

Function os::trap::trap_handler

source ·
#[no_mangle]
+trap_handler in os::trap - Rust

Function os::trap::trap_handler

source ·
#[no_mangle]
 pub fn trap_handler() -> !
\ No newline at end of file diff --git a/main/os/trap/fn.trap_return.html b/main/os/trap/fn.trap_return.html index 187bb06d..7b2c765d 100644 --- a/main/os/trap/fn.trap_return.html +++ b/main/os/trap/fn.trap_return.html @@ -1,3 +1,2 @@ -trap_return in os::trap - Rust -

Function os::trap::trap_return

source ·
#[no_mangle]
+trap_return in os::trap - Rust

Function os::trap::trap_return

source ·
#[no_mangle]
 pub fn trap_return() -> !
\ No newline at end of file diff --git a/main/os/trap/index.html b/main/os/trap/index.html index 903c5645..c7ac3cd5 100644 --- a/main/os/trap/index.html +++ b/main/os/trap/index.html @@ -1,2 +1 @@ -os::trap - Rust -
\ No newline at end of file +os::trap - Rust
\ No newline at end of file diff --git a/main/search-index.js b/main/search-index.js index e7214ae8..02e1eb5e 100644 --- a/main/search-index.js +++ b/main/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["os",{"doc":"","t":"FONCNNNNNHCCNCNCNCCCNNQQHNNCCCCCCNNNNNNNISISSSSSSOOHOHOESSEESSSSSFNNNNNNNNNNHNNNNNNNNNNEECCCCCCCFEONHNNNNNNNNNNNNNNNNNCNNSFNNNNNNONNNNNNNNNNNNNNONNNCFFONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKEFONNNNNNNNMMNCNNMNNNNNNNNNMTTTTFFFFFFTTFTTFOOOONNNNNNNNNNNONNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNONNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNNNONNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNJFKSFONNNNNNNNNNNNNOMNNNMNONNNNNNNNNNNNNNNNNNNNNMNNNNNKFFSSFFOONNNNNNNNNNNNNNNNNNNNNNNNONNONNNNMNONNNNMNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNFKSFONNNNNNNNNNNNNNNNNNNNNNMNNNNNMNNNNNNNNNNNNNNNGPFPNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKEEECEEECMMCMMTFFFTTFTTONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNHNNOHNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONPPPFFSGNONNNNNNNNNNNONNNNNNNNNNNNNNNONNNHNNNNNNNNNNNONNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNONNONFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHEEEEEEEEEEEEEEEECEECECHECCEEEESSFFFFKSISFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKIFFOMNMNNNNNNNNNNNNNNNNNNNOOMNNNOONHHHHHNNNNHNNNMNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNJJHHHPPFPFFGFTTTTONNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNHHHNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNONONNNNNNNNNNNNNNONNNHNNNNNNNNNNNNHHNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNTTTFFFTTFFTTTNNNNNNNNNNNOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNHHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFONNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNCNNNNNNCCNNNNNNNNNNNNNCNNNNNNNNNNNNFFFOHHNNNNNNNNNNNNHNNNNNNNNNNNNNNHNNNNNNNOHNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNFFOOHNNNNNNONNNNNNNNNHHNNONNNNHHOHONNNNOHNNNNNNNNNNNNNNFONNNNNNONNNNNNNNNNOOOONNNNNNNNNFNNNNNNONNNNNNNNNNOOONNNNNNNNNHHEEEEEEECCCCFFNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNKFFFNNNNNNNNNNNNNNNNNNNNNONNNMNNOONNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNONNNNNNFFNNNNNNNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNONNNNFFFFFONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSCCCCCCHCHHHHHHSHHHHHHHHHHHHHHHHHHHHHHHHHHHHEFEEEEEEOHENHHNNNHNNCHEEEEEENHNCNECNNEECCEENNECHCECNNNNNENNFNNNNNNNNNNNOONNONNNNNNNNSFFFFFFOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNHHNNNNNNNNNNNNNNHONONNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNFFFOONHNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNHOHNNNNNNNNNNNNNNNNNNNNNHNNNNNNFFNNNNNNNNNNNNNNOONNOONNNNNNONNNOOONNNNNOONNNNOOOONNNNNNNNNNNNNNNFFONNNNNNNNNNNNNOHHHHHHNNNNONNNNNNNHNNNNHNHNNNNNNNNNNNNNNTTTTTFNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHPPPFFGNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNONNNNNNNOONNNNNNOONONNNNNNNNNNNNNNNNNNNNNSSFFOHNNNNNNNNHNNNNNNNONNHHNNNNNNNNNNNHONNNNNNNNNNNNNNECHHHHHHHHHFNNNNNNNNNNOONNNNONOONNNNNNNO","n":["DEV_NON_BLOCKING_ACCESS","__private_field","az","board","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","clear_bss","config","console","deref","drivers","from","fs","into","lang_items","mm","net","overflowing_as","overflowing_cast_from","print","println","rust_main","saturating_as","saturating_cast_from","sbi","sync","syscall","task","timer","trap","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","BlockDeviceImpl","CLOCK_FREQ","CharDeviceImpl","MEMORY_END","MMIO","VIRTGPU_XRES","VIRTGPU_YRES","VIRT_PLIC","VIRT_UART","condvar","condvars","device_init","inner","irq_handler","virtio_blk","CLOCK_FREQ","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","MEMORY_END","MMIO","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT_BASE","USER_STACK_SIZE","Stdout","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","into","overflowing_as","overflowing_cast_from","print","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write_str","BLOCK_DEVICE","BLOCK_DEVICE","block","bus","chardev","gpu","input","net","plic","BLOCK_DEVICE","VirtIOBlock","__private_field","az","block_device_test","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","into","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","virtio_blk","wrapping_as","wrapping_cast_from","VIRTIO0","VirtIOBlock","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","condvars","from","handle_irq","into","new","overflowing_as","overflowing_cast_from","read_block","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","virtio_blk","wrapping_as","wrapping_cast_from","write_block","virtio","QUEUE_FRAMES","VirtioHal","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","dma_alloc","dma_dealloc","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","phys_to_virt","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","virt_to_phys","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","CharDevice","NS16550a","UART","__private_field","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","handle_irq","init","into","ns16550a","overflowing_as","overflowing_cast_from","read","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write","AUX_OUTPUT1","AUX_OUTPUT2","DATA_AVAILABLE","DATA_TERMINAL_READY","IER","LSR","MCR","NS16550a","NS16550aInner","NS16550aRaw","REQUEST_TO_SEND","RX_AVAILABLE","ReadWithoutDLAB","THR_EMPTY","TX_EMPTY","WriteWithoutDLAB","_padding0","_padding1","_padding1","_padding2","all","all","all","az","az","az","az","az","az","az","az","base_addr","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","complement","complement","complement","condvar","contains","contains","contains","difference","difference","difference","empty","empty","empty","eq","eq","eq","extend","extend","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","from_iter","handle_irq","hash","hash","hash","ier","ier","iir","init","init","inner","insert","insert","insert","intersection","intersection","intersection","intersects","intersects","intersects","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_empty","is_empty","is_empty","lcr","lcr","lsr","lsr","mcr","mcr","new","new","not","not","not","ns16550a","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","partial_cmp","partial_cmp","rbr","read","read","read_buffer","read_buffer_is_empty","read_end","remove","remove","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","set","set","sub","sub","sub","sub_assign","sub_assign","sub_assign","symmetric_difference","symmetric_difference","symmetric_difference","thr","to_owned","to_owned","to_owned","toggle","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","write","write","write_end","BMP_DATA","GPU_DEVICE","GpuDevice","VIRTIO7","VirtIOGpuWrapper","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","fb","flush","flush","from","from","get_framebuffer","get_framebuffer","gpu","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","update_cursor","update_cursor","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","InputDevice","KEYBOARD_DEVICE","MOUSE_DEVICE","VIRTIO5","VIRTIO6","VirtIOInputInner","VirtIOInputWrapper","__private_field","__private_field","az","az","az","az","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","condvar","deref","deref","events","from","from","from","from","handle_irq","handle_irq","inner","into","into","into","into","is_empty","is_empty","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","read_event","read_event","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","virtio_input","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","NET_DEVICE","NetDevice","VIRTIO8","VirtIONetWrapper","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","from","from","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","receive","receive","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","transmit","transmit","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","IntrTargetPriority","Machine","PLIC","Supervisor","az","az","base_addr","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","claim","claim_comp_ptr_of_hart_with_priority","clone","clone_into","complete","disable","enable","enable_ptr","from","from","get_priority","get_threshold","hart_id_with_priority","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","priority_ptr","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_priority","set_threshold","supported_number","threshold_ptr_of_hart_with_priority","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","File","OpenFlags","Stdin","Stdout","inode","list_apps","make_pipe","open_file","pipe","read","readable","stdio","writable","write","CREATE","OSInode","OSInodeInner","OpenFlags","RDONLY","RDWR","ROOT_INODE","TRUNC","WRONLY","__private_field","all","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","cmp","complement","contains","deref","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","inner","inode","insert","intersection","intersects","into","into","into","into","is_all","is_empty","list_apps","new","not","offset","open_file","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","read","read_all","read_write","readable","readable","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","Empty","Full","Normal","Pipe","PipeRingBuffer","RING_BUFFER_SIZE","RingBufferStatus","all_write_ends_closed","arr","available_read","available_write","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffer","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","from","from","from","head","into","into","into","make_pipe","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","read","read_byte","read_end_with_buffer","readable","readable","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","set_write_end","status","tail","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write_byte","write_end","write_end_with_buffer","Stdin","Stdout","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","read","read","readable","readable","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write","backtrace","panic","FrameTracker","KERNEL_SPACE","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","PageTable","PageTableEntry","PhysAddr","PhysPageNum","StepByOne","UserBuffer","VPNRange","VirtAddr","VirtPageNum","address","frame_alloc","frame_alloc_more","frame_allocator","frame_dealloc","heap_allocator","init","kernel_token","memory_set","page_table","translated_byte_buffer","translated_ref","translated_refmut","translated_str","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","ceil","ceil","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_ref","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","l","new","new","next","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","r","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","step","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","alloc_more","alloc_more","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","current","current","dealloc","dealloc","deref","drop","end","end","fmt","frame_alloc","frame_alloc_more","frame_allocator_alloc_more_test","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","ppn","recycled","recycled","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","Linear","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","kernel_token","map","map_one","map_perm","map_trampoline","map_type","new","new_bare","new_kernel","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","vpn_range","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","UserBuffer","UserBufferIterator","V","W","X","all","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffers","buffers","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","current_buffer","current_idx","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","into","into","into_iter","into_iter","is_all","is_empty","is_valid","len","map","new","new","new","next","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","ppn","readable","remove","root_ppn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_ref","translated_refmut","translated_str","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","IPv4","LOSE_NET_STACK","NetStack","__private_field","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","deref","eq","fmt","fmt","from","from","from","from_u32","hexdump","into","into","into","net_interrupt_handler","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","port_table","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","socket","tcp","to_owned","to_string","to_string","to_u32","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","udp","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","LISTEN_TABLE","Port","PortFd","__private_field","accept","accept_connection","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","check_accept","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","drop","from","from","from","into","into","into","listen","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","port","port_acceptable","read","readable","receivable","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","schedule","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","write","SOCKET_TABLE","Socket","__private_field","ack","add_socket","az","az","borrow","borrow","borrow_mut","borrow_mut","buffers","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","from","from","get_s_a_by_index","get_socket","into","into","lport","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","pop_data","push_data","raddr","remove_socket","rport","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","seq","set_s_a_by_index","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","TCP","ack","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","dport","drop","from","into","new","overflowing_as","overflowing_cast_from","read","readable","saturating_as","saturating_cast_from","seq","socket_index","sport","target","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","writable","write","UDP","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","dport","drop","from","into","new","overflowing_as","overflowing_cast_from","read","readable","saturating_as","saturating_cast_from","socket_index","sport","target","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","writable","write","set_timer","shutdown","Condvar","Mutex","MutexBlocking","MutexSpin","Semaphore","UPIntrFreeCell","UPIntrRefMut","condvar","mutex","semaphore","up","Condvar","CondvarInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","signal","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wait_no_sched","wait_queue","wait_with_mutex","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","Mutex","MutexBlocking","MutexBlockingInner","MutexSpin","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","from","from","from","inner","into","into","into","lock","lock","lock","locked","locked","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unlock","unlock","unlock","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wait_queue","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","Semaphore","SemaphoreInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","count","down","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","up","wait_queue","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","INTR_MASKING_INFO","IntrMaskingInfo","UPIntrFreeCell","UPIntrRefMut","UPSafeCellRaw","__private_field","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","deref_mut","drop","enter","exclusive_access","exclusive_session","exit","from","from","from","from","from","get_mut","inner","inner","into","into","into","into","into","nested_level","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sie_before_masking","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","SYSCALL_ACCEPT","SYSCALL_CLOSE","SYSCALL_CONDVAR_CREATE","SYSCALL_CONDVAR_SIGNAL","SYSCALL_CONDVAR_WAIT","SYSCALL_CONNECT","SYSCALL_DUP","SYSCALL_EVENT_GET","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_FRAMEBUFFER","SYSCALL_FRAMEBUFFER_FLUSH","SYSCALL_GETPID","SYSCALL_GETTID","SYSCALL_GET_TIME","SYSCALL_KEY_PRESSED","SYSCALL_KILL","SYSCALL_LISTEN","SYSCALL_MUTEX_CREATE","SYSCALL_MUTEX_LOCK","SYSCALL_MUTEX_UNLOCK","SYSCALL_OPEN","SYSCALL_PIPE","SYSCALL_READ","SYSCALL_SEMAPHORE_CREATE","SYSCALL_SEMAPHORE_DOWN","SYSCALL_SEMAPHORE_UP","SYSCALL_SLEEP","SYSCALL_THREAD_CREATE","SYSCALL_WAITPID","SYSCALL_WAITTID","SYSCALL_WRITE","SYSCALL_YIELD","fs","gui","input","net","process","sync","syscall","thread","sys_close","sys_dup","sys_open","sys_pipe","sys_read","sys_write","FB_VADDR","sys_framebuffer","sys_framebuffer_flush","sys_event_get","sys_key_pressed","sys_accept","sys_connect","sys_listen","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_kill","sys_waitpid","sys_yield","sys_condvar_create","sys_condvar_signal","sys_condvar_wait","sys_mutex_create","sys_mutex_lock","sys_mutex_unlock","sys_semaphore_create","sys_semaphore_down","sys_semaphore_up","sys_sleep","sys_gettid","sys_thread_create","sys_waittid","IDLE_PID","INITPROC","KernelStack","PidHandle","SignalFlags","TaskContext","TaskControlBlock","TaskStatus","__private_field","add_initproc","add_task","az","block_current_and_run_next","block_current_task","borrow","borrow_mut","cast_from","check_signals_of_current","checked_as","checked_cast_from","context","current_add_signal","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","exit_current_and_run_next","from","id","into","kstack_alloc","manager","overflowing_as","overflowing_cast_from","pid2process","pid_alloc","process","processor","remove_from_pid2process","run_tasks","saturating_as","saturating_cast_from","schedule","signal","suspend_current_and_run_next","switch","take_current_task","task","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wakeup_task","wrapping_as","wrapping_cast_from","TaskContext","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","goto_trap_return","into","overflowing_as","overflowing_cast_from","ra","s","saturating_as","saturating_cast_from","sp","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","zero_init","IDLE_PID","KSTACK_ALLOCATOR","KernelStack","PID_ALLOCATOR","PidHandle","RecycleAllocator","TaskUserRes","__private_field","__private_field","alloc","alloc_tid","alloc_user_res","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","current","dealloc","dealloc_tid","dealloc_user_res","deref","deref","drop","drop","drop","from","from","from","from","from","from","get_top","into","into","into","into","into","into","kernel_stack_position","kstack_alloc","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid_alloc","process","push_on_top","recycled","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","tid","trap_cx_bottom_from_tid","trap_cx_ppn","trap_cx_user_va","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","ustack_base","ustack_base","ustack_bottom_from_tid","ustack_top","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","PID2PCB","TASK_MANAGER","TaskManager","__private_field","__private_field","add","add_task","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","fetch","fetch_task","from","from","from","insert_into_pid2process","into","into","into","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid2process","ready_queue","remove_from_pid2process","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wakeup_task","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","ProcessControlBlock","ProcessControlBlockInner","alloc_fd","alloc_tid","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","children","condvar_list","dealloc_tid","exec","exit_code","fd_table","fork","from","from","get_task","get_user_token","getpid","inner","inner_exclusive_access","into","into","is_zombie","memory_set","mutex_list","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","parent","pid","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","semaphore_list","signals","task_res_allocator","tasks","thread_count","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","PROCESSOR","Processor","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","current","current","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","run_tasks","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","SIGABRT","SIGFPE","SIGILL","SIGINT","SIGSEGV","SignalFlags","all","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow_mut","cast_from","check_error","checked_as","checked_cast_from","clone","clone_into","cmp","complement","contains","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","insert","intersection","intersects","into","is_all","is_empty","not","overflowing_as","overflowing_cast_from","partial_cmp","remove","saturating_as","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_into","type_id","union","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","__switch","Blocked","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","exit_code","from","from","from","get_status","get_trap_cx","get_user_token","inner","inner_exclusive_access","into","into","into","kstack","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","process","res","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","MSEC_PER_SEC","TICKS_PER_SEC","TIMERS","TimerCondVar","__private_field","add_timer","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","check_timer","checked_as","checked_as","checked_cast_from","checked_cast_from","cmp","deref","eq","expire_ms","from","from","get_time","get_time_ms","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","partial_cmp","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_next_trigger","task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","TrapContext","context","disable_supervisor_interrupt","enable_supervisor_interrupt","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","fmt","from","into","kernel_satp","kernel_sp","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","x"],"q":[[0,"os"],[40,"os::board"],[55,"os::config"],[65,"os::console"],[87,"os::drivers"],[96,"os::drivers::block"],[121,"os::drivers::block::virtio_blk"],[148,"os::drivers::bus"],[149,"os::drivers::bus::virtio"],[195,"os::drivers::chardev"],[224,"os::drivers::chardev::ns16550a"],[553,"os::drivers::gpu"],[607,"os::drivers::input"],[705,"os::drivers::net"],[754,"os::drivers::plic"],[815,"os::fs"],[829,"os::fs::inode"],[973,"os::fs::pipe"],[1063,"os::fs::stdio"],[1111,"os::lang_items"],[1113,"os::mm"],[1143,"os::mm::address"],[1338,"os::mm::frame_allocator"],[1427,"os::mm::heap_allocator"],[1432,"os::mm::memory_set"],[1626,"os::mm::page_table"],[1813,"os::net"],[1893,"os::net::port_table"],[1969,"os::net::socket"],[2024,"os::net::tcp"],[2056,"os::net::udp"],[2086,"os::sbi"],[2088,"os::sync"],[2099,"os::sync::condvar"],[2145,"os::sync::mutex"],[2218,"os::sync::semaphore"],[2264,"os::sync::up"],[2381,"os::syscall"],[2423,"os::syscall::fs"],[2429,"os::syscall::gui"],[2432,"os::syscall::input"],[2434,"os::syscall::net"],[2437,"os::syscall::process"],[2445,"os::syscall::sync"],[2455,"os::syscall::thread"],[2458,"os::task"],[2517,"os::task::context"],[2542,"os::task::id"],[2694,"os::task::manager"],[2768,"os::task::process"],[2833,"os::task::processor"],[2890,"os::task::signal"],[2959,"os::task::switch"],[2960,"os::task::task"],[3040,"os::timer"],[3094,"os::trap"],[3105,"os::trap::context"],[3134,"core::option"],[3135,"core::result"],[3136,"core::any"],[3137,"core::fmt"],[3138,"core::fmt"],[3139,"alloc::sync"],[3140,"alloc::vec"],[3141,"core::cmp"],[3142,"core::iter::traits::collect"],[3143,"core::fmt"],[3144,"easy_fs::vfs"],[3145,"core::panic::panic_info"],[3146,"core::marker"],[3147,"core::cmp"],[3148,"core::alloc::layout"],[3149,"alloc::string"],[3150,"core::fmt"],[3151,"core::ops::function"],[3152,"core::marker"],[3153,"alloc::collections::binary_heap"]],"d":["","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","InterruptEnableRegister","LineStatusRegister","Model Control Register","","","","","","","","","","ignore FCR","ignore MSR","ignore other registers","ignore SCR","Returns the set containing all flags.","Returns the set containing all flags.","Returns the set containing all flags.","","","","","","","","","","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Adds the set of flags.","Adds the set of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","","","","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Toggles the set of flags.","Toggles the set of flags.","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns an empty set of flags.","Returns an empty set of flags.","Returns an empty set of flags.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","","","","","","","","interrupt enable register","interrupt enable register","interrupt identification register","","","","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","line control register","line control register","line status register","line status register","model control register","modem control register","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","","","","","","","","","","","","","","","","","","","","receiver buffer register","","","","","","Removes the specified flags in-place.","Removes the specified flags in-place.","Removes the specified flags in-place.","","","","","","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","transmitter holding register","","","","Toggles the specified flags in-place.","Toggles the specified flags in-place.","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","Returns the complement of this set of flags.","","","","","","","","","","","","","","Do not check validity for simplicity Return (readable, …","","","Removes the specified flags in-place.","","","","","","","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (read_end, write_end)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","offset of page num","","","","","","","","","","","Returns the set containing all flags.","","","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in self and other.","","","","Returns an empty set of flags.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Include sections in elf and trampoline, also returns …","","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","Mention that trampoline is not collected by areas.","","","","Without kernel stacks.","Returns the complement of this set of flags.","","","","","","","","","","","","","Add a new MapArea into this MemorySet. Assuming that there …","","","Removes the specified flags in-place.","","","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","","","","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","Temporarily used to get arguments from user space.","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","","","","Returns the complement of this set of flags.","","","","","","","","","","","","","","Removes the specified flags in-place.","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","Load a string from other address spaces into kernel space …","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","get the seq and ack by socket index","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","use sbi call to set timer","use sbi call to shutdown the kernel","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Panic if the data has been borrowed.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","inner data","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","check UART’s read-buffer is empty or not","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","thread does not exist, return -1 thread has not exited …","","","","","","","","","","","","","","This function must be followed by a schedule","","","","","","","","","","","","","","","","Exit the current ‘Running’ task and run the next task …","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Only support processes with a single thread.","","","Only support processes with a single thread.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns the complement of this set of flags.","","","","Removes the specified flags in-place.","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","",""],"i":[0,3,3,0,3,3,3,3,3,0,0,0,3,0,3,0,3,0,0,0,3,3,0,0,0,3,3,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,142,143,0,142,0,143,0,0,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,14,14,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,14,14,0,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0,0,21,144,21,144,21,144,21,144,21,144,21,144,21,21,144,144,144,21,144,21,144,21,144,21,144,144,21,144,21,144,21,144,21,144,21,144,21,144,21,144,144,21,144,21,0,0,0,25,25,25,25,25,25,25,25,25,27,27,25,0,25,25,27,25,25,25,25,25,25,25,25,25,27,30,30,29,30,0,0,0,0,0,0,30,28,0,29,28,0,38,37,38,37,28,29,30,37,38,36,145,26,28,29,30,36,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,26,28,29,30,37,38,37,36,26,26,28,29,30,28,29,30,28,29,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,37,38,37,38,37,38,36,26,28,29,30,145,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,37,36,26,145,26,36,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,38,28,29,30,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,36,26,36,0,0,0,0,0,39,41,39,41,39,41,39,41,39,41,39,41,39,39,41,40,41,41,39,40,41,41,41,39,41,41,39,41,39,41,39,41,39,41,39,41,39,41,39,41,39,41,39,40,41,41,39,41,39,0,0,0,0,0,0,0,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,45,42,44,146,146,45,42,44,43,45,45,146,45,42,44,43,45,45,146,45,42,44,146,45,42,44,43,45,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,146,45,42,44,146,45,42,44,0,0,0,0,47,49,47,49,47,49,47,49,47,49,47,49,47,47,49,47,49,47,49,49,47,49,47,48,49,49,47,49,47,48,49,49,47,49,47,49,47,49,47,49,47,49,47,49,47,0,51,0,51,50,51,50,50,51,50,51,50,51,50,51,50,51,50,50,51,51,50,50,50,50,50,51,50,50,50,50,51,50,50,51,50,51,50,50,51,50,51,50,50,51,50,51,50,51,50,51,50,51,50,51,50,51,50,51,50,51,0,0,0,0,0,0,0,0,0,53,53,0,53,53,55,0,0,0,55,55,0,55,55,56,55,58,147,56,55,55,55,55,55,55,55,55,55,58,147,56,55,58,147,56,55,58,147,56,55,58,147,56,55,58,147,56,55,55,55,55,55,55,56,55,55,55,55,55,55,55,55,55,58,147,56,55,55,55,55,55,55,58,147,55,55,55,58,147,56,55,55,55,0,58,55,147,0,58,147,56,55,58,147,56,55,55,58,58,55,58,58,55,58,147,56,55,58,147,56,55,55,55,55,55,55,55,58,147,56,55,58,147,56,55,58,147,56,55,55,58,147,56,55,58,147,56,55,58,147,56,55,58,147,56,55,58,58,58,60,60,60,0,0,0,0,59,59,59,59,61,59,60,61,59,60,61,59,60,61,61,59,60,61,59,60,61,59,60,60,60,60,61,59,60,59,61,59,60,0,59,61,59,60,61,59,60,61,59,61,61,61,61,59,60,61,59,60,59,59,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,61,61,59,59,61,0,0,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,66,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,65,66,78,65,66,67,68,69,78,65,66,67,68,69,65,66,67,68,69,65,66,67,68,69,65,66,67,68,78,78,65,66,67,68,65,66,65,66,67,68,78,65,65,65,66,66,66,67,67,67,68,68,68,69,67,69,65,67,67,65,69,68,78,65,66,67,68,69,78,69,148,69,78,69,78,78,65,66,67,68,69,78,65,66,67,68,69,65,66,65,66,67,68,148,69,78,65,66,67,68,69,78,65,66,67,68,69,70,67,68,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,0,0,0,0,0,81,79,80,79,80,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,80,149,79,80,81,22,80,149,22,0,0,0,0,0,22,80,81,80,0,22,80,81,79,22,80,22,80,81,22,80,81,22,80,149,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,0,0,0,0,0,85,85,0,85,0,0,0,0,84,84,84,84,88,83,84,83,83,86,88,85,84,84,84,84,84,84,84,84,84,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,85,84,85,84,84,84,84,86,86,88,84,0,0,0,84,85,84,0,0,84,85,84,84,84,84,84,83,86,88,85,84,86,84,84,84,83,83,84,84,84,83,84,84,83,86,88,85,84,84,84,0,86,86,86,83,86,86,83,83,84,83,86,88,85,84,83,86,88,85,84,83,84,83,83,0,84,83,83,86,88,85,84,83,86,88,85,84,0,0,84,0,0,0,84,84,84,85,84,84,83,83,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,84,86,86,83,86,88,85,84,83,86,88,85,84,86,83,86,88,85,84,83,86,88,85,84,89,89,89,0,0,0,89,89,0,0,89,89,89,89,87,54,90,89,76,89,89,89,89,89,89,76,89,89,87,54,90,89,76,87,54,90,89,76,54,90,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,89,76,89,76,89,89,89,90,90,89,89,76,89,76,89,87,87,76,89,89,89,89,89,87,87,54,90,89,76,89,89,89,89,87,89,89,89,89,87,54,90,89,76,54,90,89,89,76,54,87,87,54,76,90,89,87,54,90,89,76,87,54,90,89,76,89,76,76,89,87,87,54,90,89,76,87,54,90,89,76,89,89,89,89,89,76,89,87,87,87,0,0,0,0,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,89,87,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,76,0,0,0,93,92,94,93,92,94,93,92,94,93,92,94,93,92,94,93,92,94,93,92,92,93,92,92,92,92,94,93,92,0,92,94,93,0,92,94,92,94,93,92,94,93,0,92,94,93,92,94,93,0,0,92,92,92,92,92,94,93,92,94,93,92,94,93,0,92,94,93,92,94,93,92,94,93,92,94,93,0,0,0,99,0,0,100,101,99,100,101,99,100,101,99,100,101,99,0,100,101,99,100,101,99,99,101,100,101,99,100,101,99,0,101,100,101,99,100,101,99,100,0,101,101,100,100,101,99,100,101,99,100,100,101,99,100,101,99,100,101,99,100,101,99,100,101,99,100,101,99,100,101,99,101,101,0,0,102,103,0,103,102,103,102,103,102,103,103,102,103,102,103,102,102,103,102,0,0,103,102,103,103,102,103,102,0,0,103,0,103,103,102,103,102,103,0,103,102,103,102,103,102,103,102,103,102,103,102,103,102,0,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,0,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,150,106,150,106,150,106,150,106,150,106,150,106,150,106,106,150,106,106,150,106,150,106,150,106,150,106,106,150,106,150,106,150,106,150,106,150,106,150,106,106,150,106,150,0,0,0,0,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,110,109,110,151,108,109,110,109,151,109,110,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,108,109,110,109,110,151,109,110,151,151,109,110,151,109,110,151,0,0,111,152,111,152,111,152,111,152,111,152,111,152,152,111,111,152,111,111,152,111,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,0,0,0,0,0,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,112,113,112,112,114,5,5,114,115,114,5,112,113,115,115,5,115,114,5,112,113,114,115,114,5,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,114,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,0,0,120,0,0,120,120,120,0,120,120,0,0,0,0,0,0,0,0,120,0,120,0,120,0,0,120,120,0,0,0,0,0,0,120,120,0,0,0,0,0,0,120,120,120,120,120,0,120,120,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,0,0,0,0,0,0,0,124,125,122,123,123,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,122,123,123,124,125,126,127,123,122,126,127,123,124,125,127,122,126,127,123,124,125,0,0,122,123,122,126,127,123,124,125,122,126,127,123,124,125,0,123,127,122,122,126,127,123,124,125,122,126,127,123,124,125,123,0,123,123,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,123,123,0,123,122,126,127,123,124,125,122,126,127,123,124,125,0,0,0,130,131,129,0,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,130,131,129,0,129,130,131,0,129,130,131,129,129,130,131,129,130,131,0,129,0,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,0,129,130,131,129,130,131,0,0,133,133,121,133,121,133,121,133,121,133,121,133,121,133,133,133,133,121,133,133,121,121,133,133,133,121,121,121,121,133,133,133,133,121,121,133,121,133,133,121,121,133,121,133,133,133,133,133,133,121,133,121,133,121,133,121,133,121,133,121,133,121,133,0,0,136,134,136,134,136,134,136,134,136,134,136,134,136,134,134,0,0,0,0,0,0,136,134,136,134,134,134,136,134,134,136,134,136,0,134,136,134,136,0,134,0,134,136,134,136,134,136,134,136,134,136,134,136,134,136,119,119,119,119,119,0,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,0,137,137,137,0,0,0,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,137,137,137,138,96,138,137,138,138,96,96,96,96,138,137,96,96,96,138,137,96,138,137,96,138,96,138,137,96,138,137,138,138,137,138,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,0,0,0,0,140,0,139,140,139,140,139,140,139,140,0,139,140,139,140,139,140,139,139,139,140,0,0,139,140,139,140,139,140,139,139,140,139,140,0,139,139,140,139,140,139,140,139,140,139,140,139,140,139,140,0,0,0,0,0,0,0,0,0,0,0,0,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135],"f":"``{ce{}{}}`000{c{{b{e}}}{}{}}0{{}d}``{f{{j{h}}}}`{cc{}}`4```{c{{l{eh}}}{}{}}0``{{}n}66``````{c{{A`{e}}}{}{}}0{cAb{}}8888```````````6`6````````````8888774833{Add}992219999{{AfAh}Aj}````````````:8:::99{Al{{B`{An}}}}7;66;;443;;`;;``;;;;::`7{Bbd}<{{}Bb}88{{BbBd{Bh{Bf}}}d}>>776>>`>>0````>>>>>>>>===={Bj{{j{{Bn{Bl}}}}}}{BdBd}{{BdBd}C`}=={ce{}{}}0====20000;;;;::000020000````0000{c{{b{e}}}{}{}}0{Cb{{B`{Cd}}}}{cc{}}{Cfd}04`{c{{l{eh}}}{}{}}0{CfBf}66{c{{A`{e}}}{}{}}0{cAb{}}8888{{CfBf}d}````````````````````{{}Ch}{{}Cj}{{}Cl}<<<<<<<<`{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}{{ChCh}d}{{CjCj}d}{{ClCl}d}543210{ChBf}{CjBf}{ClBf}```876543{ce{}{}}00000000000000000000000{c{{b{e}}}{}{}}000000000000000{ChCh}{CjCj}{ClCl}{{ce}d{}{}}00{{ChCh}Cn}{{CjCj}Cn}{{ClCl}Cn}654`{{ChCh}h}{{CjCj}h}{{ClCl}h}{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}{{}Ch}{{}Cj}{{}Cl}876{{Chc}d{{Db{}{{D`{Ch}}}}}}{{Cjc}d{{Db{}{{D`{Cj}}}}}}{{Clc}d{{Db{}{{D`{Cl}}}}}}{{ChDd}Aj}0000{{CjDd}Aj}0000{{ClDd}Aj}0000{cc{}}0000000{Bf{{b{Ch}}}}{Bf{{b{Cj}}}}{Bf{{b{Cl}}}}{BfCh}{BfCj}{BfCl}210{cCh{{Db{}{{D`{Ch}}}}}}{cCj{{Db{}{{D`{Cj}}}}}}{cCl{{Db{}{{D`{Cl}}}}}}{Cdd}{{Chc}dDf}{{Cjc}dDf}{{Clc}dDf}```{Dhd}4`{{ChCh}d}{{CjCj}d}{{ClCl}d}{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}{{ChCh}h}{{CjCj}h}{{ClCl}h}{ce{}{}}0000000{Chh}{Cjh}{Clh}210``````{BdDh}{{}Cd}{ChCh}{CjCj}{ClCl}`{c{{l{eh}}}{}{}}000000000000000{{ChCh}{{b{Cn}}}}{{CjCj}{{b{Cn}}}}{{ClCl}{{b{Cn}}}}`{Dh{{b{Bf}}}}{CdBf}`{Cdh}{DhDj}{{ChCh}d}{{CjCj}d}{{ClCl}d}{ce{}{}}000000000000000{{ChChh}d}{{CjCjh}d}{{ClClh}d}{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}987210`666987{c{{A`{e}}}{}{}}000000000000000{cAb{}}000000043288888888888888888888888888888888{{DhBf}d}{{CdBf}d}{DhDl}``````;;;;;;;;{c{{b{e}}}{}{}}000{Dn{{B`{E`}}}}`{E`d}{Ebd}{cc{}}0{E`{{Bh{Bf}}}}{Eb{{Bh{Bf}}}}`{ce{}{}}0{{}Eb}{c{{l{eh}}}{}{}}0002222>>>>==2222762222`````````222222222222222299999999`{Ed{{B`{Ef}}}}{Eh{{B`{Ef}}}}`7777{Efd}{Ejd}`6666{Efh}{Ejh}{BdEj}77777777{EfEl}{EjEl};;;;;;;;{c{{A`{e}}}{}{}}0000000{cAb{}}000========`========`````========{c{{b{e}}}{}{}}000{En{{B`{F`}}}}{cc{}}0{ce{}{}}0{{}Fb}{c{{l{eh}}}{}{}}000{{F`{Bh{Bf}}}Bd}{{Fb{Bh{Bf}}}Bd}4444{{F`{Bh{Bf}}}d}{{Fb{Bh{Bf}}}d};;;;::66666666````66`6666669999{{FdBdFf}Fh}0{FfFf}{{ce}d{}{}}{{FdBdFfFh}d}{{FdBdFfBd}d}0{{FdBdFfBd}{{l{FhBd}}}}=={{FdBd}Fh}6{{BdFf}Bd}>>{BdFd}====2????{{FdBdFh}d}6{{}Bd}:{ce{}{}}{c{{A`{e}}}{}{}}000{cAb{}}022222222`````````{{FjFl}Bd}{Fjh}`01``````````{{}Fn}5555{{FnFn}Fn}{{FnFn}d}10{FnFh}`21888888888888{c{{b{e}}}{}{}}0000000{FnFn}{{ce}d{}{}}{{FnFn}Cn}2{{FnFn}h}{G`{{B`{Gb}}}}891{{Fnc}d{{Db{}{{D`{Fn}}}}}}{{FnDd}Aj}0000{cc{}}000{Fh{{b{Fn}}}}{FhFn}0{cFn{{Db{}{{D`{Fn}}}}}}{{Fnc}dDf}``>?8{ce{}{}}000{Fnh}0{{}d}{{hh{B`{Gb}}}Gd}?`{{AhFn}{{b{{B`{Gd}}}}}}{c{{l{eh}}}{}{}}0000000{{FnFn}{{b{Cn}}}}{{GdFl}Bd}{Gd{{Bn{Bf}}}}{Fn{{l{hh}}}}{Gdh}`{{FnFn}d};;;;;;;;{{FnFnh}d}{{FnFn}Fn}20=2{c{{A`{e}}}{}{}}0000000{cAb{}}0002????????????????5`8```````{Gfh}`{GfBd}0{ce{}{}}00000000`000{c{{b{e}}}{}{}}00000{GhGh}{{ce}d{}{}}{{GhGh}h}{cc{}}00`555{{}{{l{{B`{Gj}}{B`{Gj}}}}}}{{}Gf}{c{{l{eh}}}{}{}}00000{{GjFl}Bd}{GfBf}{{{B`{{j{Gf}}}}}Gj}{Gjh}`<<<<<<{{Gf{B`{Gj}}}d}``={c{{A`{e}}}{}{}}00000{cAb{}}00????????????3`6{{GfBf}d}`5``{ce{}{}}0000000{c{{b{e}}}{}{}}000==11::::{{GlFl}Bd}{{GnFl}Bd}{Glh}{Gnh}5555888877555555551032{{}d}{H`n}``````````````````````1```````````````````{Hbh}{Hdh}999999999999999999999999{HbHf}{HdHh}::::::::::::{HbHb}{HdHd}{HfHf}{HhHh}{{{Hj{c}}}{{Hj{c}}}{HlHnI`IbIdIf}}{{ce}d{}{}}0000{{HbHb}Cn}{{HdHd}Cn}{{HfHf}Cn}{{HhHh}Cn}``{{HbHb}h}{{HdHd}h}{{HfHf}h}{{HhHh}h}?>{{HbDd}Aj}{{HdDd}Aj}{{HfDd}Aj}{{HhDd}Aj}{cc{}}0{HfHb}{BdHb}{HhHd}{BdHd}44{BdHf}{HbHf}{BdHh}7{HdHh}8{Hf{{Bh{Bf}}}}{{{Hj{c}}}c{HlHnI`IbId}}{Hbc{}}{Hfc{}}{Hf{{Bh{Ih}}}}23{Hh{{Ij{Bd}}}}{ce{}{}}000000{{{Hj{c}}}e{HlHnI`IbId}{}}``{{cc}{{Il{c}}}{HlHnI`IbId}}{{cc}{{Hj{c}}}{HlHnI`IbId}}{{{Il{c}}}{{b{e}}}{HlHnI`IbId}{}}{c{{l{eh}}}{}{}}00000000000{HbBd}{HdBd}{{HbHb}{{b{Cn}}}}{{HdHd}{{b{Cn}}}}{{HfHf}{{b{Cn}}}}{{HhHh}{{b{Cn}}}}``;;;;;;;;;;;;{Hld}{Hfd}{Hhd}>>>>>{c{{A`{e}}}{}{}}00000000000{cAb{}}00000{ce{}{}}00000000000000000000000``````{In{{b{Hf}}}}{J`{{b{Hf}}}}{{InBd}{{b{{Bn{Hf}}}}}}{{J`Bd}{{b{{Bn{Hf}}}}}}444444444444{c{{b{e}}}{}{}}00000``{{InHf}d}{{J`Hf}d}{Jb{{j{J`}}}}{Bld}``{{BlDd}Aj}{{}{{b{Bl}}}}{Bd{{b{{Bn{Bl}}}}}}{{}d}0{Hfd}{cc{}}00{{J`HfHf}d}3{ce{}{}}00{{}In}{HfBl}{{}J`}{c{{l{eh}}}{}{}}00000```444444{c{{A`{e}}}{}{}}00000{cAb{}}00666666666666``{Jdn};;`````````````{Jfd}{{}Jh}`99999{{JhJh}Jh}{{JhJh}d}10{JhBf}`21<<<<<<<<<<<<<<<{c{{b{e}}}{}{}}000000000{JjJj}{JhJh}{{ce}d{}{}}0{{JhJh}Cn}2{{JhJh}h}{{JlJn{Bh{Bf}}}d}`{K`{{B`{{j{Jf}}}}}}:```;{{JjJj}h}3``{{Jhc}d{{Db{}{{D`{Jh}}}}}}{{JjDd}Aj}{{JhDd}Aj}0000{cc{}}0000{JlJl}{Bf{{b{Jh}}}}{BfJh}0{{{Bh{Bf}}}{{l{JfBdBd}}}}{JfJf}{cJh{{Db{}{{D`{Jh}}}}}}{{Jhc}dDf}{{JhJh}d}{{JfHdHdJh}d}{{JhJh}Jh}{{JhJh}h}{ce{}{}}0000{Jhh}0{{}Bd}{{JlJn}d}{{JlJnHh}d}`{Jfd}`{{HdHdJjJh}Jl}{{}Jf}0{JhJh}{c{{l{eh}}}{}{}}000000000`{{JhJh}{{b{Cn}}}}{{JfJl{b{{Bh{Bf}}}}}d}6{{}d}{{JhJh}d}{{JfHh}d}>>>>>>>>>>``{{JhJhh}d}```{{JhJh}Jh}30{ce{}{}}04{JfBd}{{JfHh}{{b{Ih}}}}{c{{A`{e}}}{}{}}000000000{cAb{}}00005{{JlJn}d}{{JlJnHh}d}6666666666`6666666666`````````````{{}Kb}77777{{KbKb}Kb}{{KbKb}d}10{KbBf}``21::::::::::``:::::{c{{b{e}}}{}{}}000000000{KbKb}{IhIh}{{ce}d{}{}}0{{KbKb}Cn}3{{KbKb}h}``89{{}Ih}1{Ihh}{{Kbc}d{{Db{}{{D`{Kb}}}}}}{{JnHh}{{b{Ih}}}}0{IhKb}{{KbDd}Aj}0000`{cc{}}0000{Bf{{b{Kb}}}}{BfKb}0{cKb{{Db{}{{D`{Kb}}}}}}{BdJn}{{Kbc}dDf}{{KbKb}d}{{KbKb}Kb}>{ce{}{}}0000{Flc{}}1{Kbh}0?{FlBd}{{JnHhHfKb}d}{{}Jn}{{{Bn{{Bh{Bf}}}}}Fl}{{HfKb}Ih}{Kd{{b{c}}}{}}{KbKb}{c{{l{eh}}}{}{}}000000000{{KbKb}{{b{Cn}}}}{IhHf}{Ihh}?`=========={{KbKbh}d}?{{KbKb}d}{{KbKb}Kb}{ce{}{}}02{JnBd}{{JnHh}{{b{Ih}}}}{{JnHd}{{b{Hb}}}}{{BdBfBd}{{Bn{{Bh{Bf}}}}}}{Bdc{}}0{{BdBf}Kf}{c{{A`{e}}}{}{}}000000000{cAb{}}00009{{JnHh}d}99999999999999999999=````999999999999{c{{b{e}}}{}{}}00000{KhKh}{{ce}d{}{}}{Kj{{B`{Kl}}}}{{KhKh}h}{{KhDd}{{A`{dKn}}}}0{cc{}}00{FhKh}{{{Bh{Bf}}}d}{ce{}{}}00{{}d}{{BfBfBfBf}Kh}{{}Kl}{c{{l{eh}}}{}{}}00000`444444``4{cKf{}}{KhKf}{KhFh}{c{{A`{e}}}{}{}}00000{cAb{}}00`999999999999````{{Bd{B`{L`}}}d}{{LbLd{B`{L`}}}d};;;;;;;;;;;;{{LbLd}{{b{d}}}}{c{{b{e}}}{}{}}00000{Lf{{j{{Bn{{b{Lh}}}}}}}}{Ljd}{cc{}}00{ce{}{}}00{Lb{{b{Bd}}}}{BdLj}??????`{Bdh}{{LjFl}Bd}{Ljh}`555555`>>>>>>===55555555555501````{{KhLbLb}{{b{Bd}}}}666666`66::::{Ll{{j{{Bn{{b{Ln}}}}}}}}88{Bd{{b{{l{FhFh}}}}}}288`{c{{l{eh}}}{}{}}000{Bd{{b{{Bn{Bf}}}}}}{{Bd{Bn{Bf}}}d}`{Bdd}`<<<<`{{BdFhFh}d}{c{{A`{e}}}{}{}}000{cAb{}}0????????``????{c{{b{e}}}{}{}}0`{M`d}{cc{}}{ce{}{}}{{KhLbLbFhFh}M`};;{{M`Fl}Bd}{M`h}33````887333301`333366`{Mbd}54{{KhLbLb}Mb}??{{MbFl}Bd}{Mbh}77```<<;777701>{hn}`````````````88888888;;;;99`88{{}Md}{c{{l{eh}}}{}{}}000::::{Mdd}{c{{A`{e}}}{}{}}000{cAb{}}0===={MdMf}`{{Md{B`{Mh}}}d}????````????????????{c{{b{e}}}{}{}}00000{cc{}}00`{ce{}{}}00{Mhd}{Mjd}{Mld}``{{}Mj}{{}Ml}======555555;;;;;;:::432555555`555555``555555557777`{Mnd}77`66{BdMn}????7777====<<77771`7777``````777777777777777777779999999999{{{N`{c}}}e{}{}}{Nb{{Nf{Nd}}}}1{{{N`{c}}}d{}}{Ndd}{{{j{c}}}{{N`{c}}}{}}{{{j{c}}g}e{}{}{{Nj{c}{{Nh{e}}}}}}2>>>>>{{{Nf{c}}}c{}}``>>>>>`{c{{Nf{c}}}{}}{{}Nd}{c{{j{c}}}{}}{c{{l{eh}}}{}{}}000000000{ce{}{}}000000000`{c{{A`{e}}}{}{}}000000000{cAb{}}000022222222222222222222````````````````````````````````````````{{Bd{Ij{Bd}}}Nl}`{BdNl}0{{BfFh}Nl}1{{BdBfBd}Nl}0`{{}Nl}0003{{FhLbLb}Nl}{LbNl}{{BfBd}Nl}{C`n}444{{BdFh}Nl}{{NlC`}Nl}669{{BdBd}Nl}{hNl};;;;;;81{BdC`}`````````{{}d}`{ce{}{}}1{{}Mf}111{{}{{b{{l{C`Ah}}}}}}{c{{b{e}}}{}{}}0`{Nnd}``````{O`{{B`{Ob}}}}{C`d}{cc{}}`7``{c{{l{eh}}}{}{}}0``````88``9```{c{{A`{e}}}{}{}}0{cAb{}}::`::`::::773{BdMf};33``;;`221;;;;:`````````{OdBd}{Ofd}0========================::::::::::::`{{OdBd}d}11{Oh{{j{Od}}}}{Oj{{j{Od}}}}{Old}{Ond}5;;;;;;{OnBd}{ce{}{}}00000{Bd{{l{BdBd}}}}{{}On}{{}Od}{{{B`{Ob}}Bdh}Of}{c{{l{eh}}}{}{}}00000000000{{}Ol}`{{Onc}{}A`}`777777777777`{BdBd}{OfHf}{OfBd}{c{{A`{e}}}{}{}}00000000000{cAb{}}00000<<<<<<<<<<<<2`{{BdBd}Bd}3============`````{{Ab{B`{L`}}}d}{{{B`{L`}}}d}????????????{c{{b{e}}}{}{}}00000{Ad{{j{Ab}}}}{Af{{j{{Ah{Bd{B`{Ob}}}}}}}}{Ab{{b{{B`{L`}}}}}}{{}{{b{{B`{L`}}}}}}{cc{}}00{{Bd{B`{Ob}}}d}{ce{}{}}00{{}Ab}{c{{l{eh}}}{}{}}00000{Bd{{b{{B`{Ob}}}}}}`{Bdd}444444{c{{A`{e}}}{}{}}00000{cAb{}}00666666>666666``{AjBd}077777777>>>>``{{AjBd}d}{{{B`{Ob}}{Bh{Bf}}{Bn{Kf}}}d}``{{{B`{Ob}}}{{B`{Ob}}}}<<{{AjBd}{{B`{L`}}}}4{ObBd}`{Ob{{N`{Aj}}}}==```{{{Bh{Bf}}}{{B`{Ob}}}}<<<<``>>>>````7999988>>>>>>>>```>>>>>>>>{c{{b{e}}}{}{}}000{Al{{b{{B`{L`}}}}}}`{{}Bd}{{}{{B`{Ob}}}}{{}{{b{{B`{L`}}}}}}{{}An}33{AA`{{j{Al}}}}{cc{}}0{AlMf}`{ce{}{}}0{{}Al}{c{{l{eh}}}{}{}}000{{}d}3333{Mfd}<9{c{{A`{e}}}{}{}}000{cAb{}}066666666``````{{}Nn}7{{NnNn}Nn}{{NnNn}d}10{NnFh}`21:::{Nn{{b{{l{C`Ah}}}}}}{c{{b{e}}}{}{}}0{NnNn}{{ce}d{}{}}{{NnNn}Cn}2{{NnNn}h}890{{Nnc}d{{Db{}{{D`{Nn}}}}}}{{NnDd}Aj}0000{cc{}}{Fh{{b{Nn}}}}{FhNn}0{cNn{{Db{}{{D`{Nn}}}}}}{{Nnc}dDf}>?7{ce{}{}}{Nnh}0<{c{{l{eh}}}{}{}}0{{NnNn}{{b{Cn}}}}{{NnNn}d}44{{NnNnh}d}{{NnNn}Nn}2062{c{{A`{e}}}{}{}}0{cAb{}}28888```````888888888888{c{{b{e}}}{}{}}00000{AAbAAb}{{ce}d{}{}}{{AAbAAb}h}`{cc{}}00{AAdAAb}{AAdAn}{L`Bd}`{L`{{N`{AAd}}}}{ce{}{}}00`{{{B`{Ob}}Bdh}L`}{c{{l{eh}}}{}{}}00000``222222``2`======<<<222222222222`````{{Bd{B`{L`}}}d}33333333{{}d}===={{AAfAAf}Cn}{AAh{{j{{AAj{AAf}}}}}}{{AAfAAf}h}`<<{{}Bd}0886666{{AAfAAf}{{b{Cn}}}}99995`{c{{A`{e}}}{}{}}000{cAb{}}0;;;;;;;;``777777{And}{{}n}0`{{BdBdBdBdBd}An}>>>>{c{{b{e}}}{}{}}0{{AnDd}Aj}{cc{}}{ce{}{}}``{c{{l{eh}}}{}{}}011`{{AnBd}d}``::92222`","c":[],"p":[[6,"Option",3134],[1,"unit"],[5,"DEV_NON_BLOCKING_ACCESS",0],[1,"bool"],[5,"UPIntrFreeCell",2264],[1,"tuple"],[1,"never"],[6,"Result",3135],[5,"TypeId",3136],[5,"Arguments",3137],[5,"Stdout",65],[1,"str"],[8,"Result",3137],[5,"BLOCK_DEVICE",96],[10,"BlockDevice",3138],[5,"Arc",3139],[5,"VirtIOBlock",121],[1,"usize"],[1,"u8"],[1,"slice"],[5,"QUEUE_FRAMES",149],[5,"FrameTracker",1338],[5,"Vec",3140],[1,"i32"],[5,"UART",195],[5,"NS16550a",224],[10,"CharDevice",195],[5,"IER",224],[5,"LSR",224],[5,"MCR",224],[6,"Ordering",3141],[17,"Item"],[10,"IntoIterator",3142],[5,"Formatter",3137],[10,"Hasher",3143],[5,"NS16550aRaw",224],[5,"ReadWithoutDLAB",224],[5,"WriteWithoutDLAB",224],[5,"GPU_DEVICE",553],[10,"GpuDevice",553],[5,"VirtIOGpuWrapper",553],[5,"KEYBOARD_DEVICE",607],[10,"InputDevice",607],[5,"MOUSE_DEVICE",607],[5,"VirtIOInputWrapper",607],[1,"u64"],[5,"NET_DEVICE",705],[10,"NetDevice",705],[5,"VirtIONetWrapper",705],[5,"PLIC",754],[6,"IntrTargetPriority",754],[1,"u32"],[10,"File",815],[5,"UserBuffer",1626],[5,"OpenFlags",829],[5,"ROOT_INODE",829],[5,"Inode",3144],[5,"OSInode",829],[5,"PipeRingBuffer",973],[6,"RingBufferStatus",973],[5,"Pipe",973],[5,"Stdin",1063],[5,"Stdout",1063],[5,"PanicInfo",3145],[5,"PhysAddr",1143],[5,"VirtAddr",1143],[5,"PhysPageNum",1143],[5,"VirtPageNum",1143],[5,"SimpleRange",1143],[10,"StepByOne",1143],[10,"Copy",3146],[10,"PartialEq",3141],[10,"PartialOrd",3141],[10,"Debug",3137],[10,"Clone",3147],[5,"PageTableEntry",1626],[1,"array"],[5,"SimpleRangeIterator",1143],[10,"FrameAllocator",1338],[5,"StackFrameAllocator",1338],[5,"FRAME_ALLOCATOR",1338],[5,"Layout",3148],[5,"MemorySet",1432],[5,"MapPermission",1432],[6,"MapType",1432],[5,"MapArea",1432],[5,"PageTable",1626],[5,"KERNEL_SPACE",1432],[5,"PTEFlags",1626],[5,"UserBufferIterator",1626],[5,"String",3149],[5,"IPv4",1813],[5,"LOSE_NET_STACK",1813],[5,"NetStack",1813],[5,"Error",3137],[5,"TaskControlBlock",2960],[1,"u16"],[5,"TCPPacket",3150],[5,"LISTEN_TABLE",1893],[5,"Port",1893],[5,"PortFd",1893],[5,"SOCKET_TABLE",1969],[5,"Socket",1969],[5,"TCP",2024],[5,"UDP",2056],[5,"Condvar",2099],[5,"TaskContext",2517],[10,"Mutex",2145],[5,"MutexSpin",2145],[5,"MutexBlocking",2145],[5,"Semaphore",2218],[5,"UPIntrRefMut",2264],[5,"INTR_MASKING_INFO",2264],[5,"IntrMaskingInfo",2264],[5,"UPSafeCellRaw",2264],[17,"Output"],[10,"FnOnce",3151],[1,"isize"],[5,"SignalFlags",2890],[5,"INITPROC",2458],[5,"ProcessControlBlock",2768],[5,"RecycleAllocator",2542],[5,"TaskUserRes",2542],[5,"PID_ALLOCATOR",2542],[5,"KSTACK_ALLOCATOR",2542],[5,"PidHandle",2542],[5,"KernelStack",2542],[10,"Sized",3146],[5,"TaskManager",2694],[5,"TASK_MANAGER",2694],[5,"PID2PCB",2694],[5,"BTreeMap",3152],[5,"ProcessControlBlockInner",2768],[5,"Processor",2833],[5,"TrapContext",3105],[5,"PROCESSOR",2833],[6,"TaskStatus",2960],[5,"TaskControlBlockInner",2960],[5,"TimerCondVar",3040],[5,"TIMERS",3040],[5,"BinaryHeap",3153],[8,"CharDeviceImpl",40],[8,"BlockDeviceImpl",40],[5,"VirtioHal",149],[5,"NS16550aInner",224],[5,"VirtIOInputInner",607],[5,"OSInodeInner",829],[8,"VPNRange",1143],[8,"FrameAllocatorImpl",1338],[5,"CondvarInner",2099],[5,"MutexBlockingInner",2145],[5,"SemaphoreInner",2218]],"b":[[348,"impl-Binary-for-IER"],[349,"impl-LowerHex-for-IER"],[350,"impl-Octal-for-IER"],[351,"impl-Debug-for-IER"],[352,"impl-UpperHex-for-IER"],[353,"impl-Debug-for-LSR"],[354,"impl-Binary-for-LSR"],[355,"impl-UpperHex-for-LSR"],[356,"impl-LowerHex-for-LSR"],[357,"impl-Octal-for-LSR"],[358,"impl-Octal-for-MCR"],[359,"impl-UpperHex-for-MCR"],[360,"impl-Debug-for-MCR"],[361,"impl-Binary-for-MCR"],[362,"impl-LowerHex-for-MCR"],[882,"impl-Binary-for-OpenFlags"],[883,"impl-LowerHex-for-OpenFlags"],[884,"impl-UpperHex-for-OpenFlags"],[885,"impl-Octal-for-OpenFlags"],[886,"impl-Debug-for-OpenFlags"],[1223,"impl-From%3CPhysPageNum%3E-for-PhysAddr"],[1224,"impl-From%3Cusize%3E-for-PhysAddr"],[1225,"impl-From%3CVirtPageNum%3E-for-VirtAddr"],[1226,"impl-From%3Cusize%3E-for-VirtAddr"],[1229,"impl-From%3Cusize%3E-for-PhysPageNum"],[1230,"impl-From%3CPhysAddr%3E-for-PhysPageNum"],[1231,"impl-From%3Cusize%3E-for-VirtPageNum"],[1233,"impl-From%3CVirtAddr%3E-for-VirtPageNum"],[1507,"impl-Binary-for-MapPermission"],[1508,"impl-LowerHex-for-MapPermission"],[1509,"impl-UpperHex-for-MapPermission"],[1510,"impl-Octal-for-MapPermission"],[1511,"impl-Debug-for-MapPermission"],[1699,"impl-UpperHex-for-PTEFlags"],[1700,"impl-Binary-for-PTEFlags"],[1701,"impl-LowerHex-for-PTEFlags"],[1702,"impl-Debug-for-PTEFlags"],[1703,"impl-Octal-for-PTEFlags"],[1839,"impl-Display-for-IPv4"],[1840,"impl-Debug-for-IPv4"],[2921,"impl-Debug-for-SignalFlags"],[2922,"impl-UpperHex-for-SignalFlags"],[2923,"impl-Binary-for-SignalFlags"],[2924,"impl-LowerHex-for-SignalFlags"],[2925,"impl-Octal-for-SignalFlags"]]}]\ +["os",{"t":"FONCNNNNNHCCNCNCNCCCNNQQHNNCCCCCCNNNNNNNISISSSSSSOOHOHOESSEESSSSSFNNNNNNNNNNHNNNNNNNNNNEECCCCCCCFEONHNNNNNNNNNNNNNNNNNCNNSFNNNNNNONNNNNNNNNNNNNNONNNCFFONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKEFONNNNNNNNMMNCNNMNNNNNNNNNMTTTTFFFFFFTTFTTFOOOONNNNNNNNNNNONNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNONNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNNNONNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNJFKSFONNNNNNNNNNNNNOMNNNMNONNNNNNNNNNNNNNNNNNNNNMNNNNNKFFSSFFOONNNNNNNNNNNNNNNNNNNNNNNNONNONNNNMNONNNNMNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNFKSFONNNNNNNNNNNNNNNNNNNNNNMNNNNNMNNNNNNNNNNNNNNNGPFPNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKEEECEEECMMCMMTFFFTTFTTONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNHNNOHNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONPPPFFSGNONNNNNNNNNNNONNNNNNNNNNNNNNNONNNHNNNNNNNNNNNONNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNONNONFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHEEEEEEEEEEEEEEEECEECECHECCEEEESSFFFFKSISFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKIFFOMNMNNNNNNNNNNNNNNNNNNNOOMNNNOONHHHHHNNNNHNNNMNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNJJHHHPPFPFFGFTTTTONNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNHHHNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNONONNNNNNNNNNNNNNONNNHNNNNNNNNNNNNHHNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNTTTFFFTTFFTTTNNNNNNNNNNNOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNHHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFONNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNCNNNNNNCCNNNNNNNNNNNNNCNNNNNNNNNNNNFFFOHHNNNNNNNNNNNNHNNNNNNNNNNNNNNHNNNNNNNOHNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNFFOOHNNNNNNONNNNNNNNNHHNNONNNNHHOHONNNNOHNNNNNNNNNNNNNNFONNNNNNONNNNNNNNNNOOOONNNNNNNNNFNNNNNNONNNNNNNNNNOOONNNNNNNNNHHEEEEEEECCCCFFNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNKFFFNNNNNNNNNNNNNNNNNNNNNONNNMNNOONNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNONNNNNNFFNNNNNNNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNONNNNFFFFFONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSCCCCCCHCHHHHHHSHHHHHHHHHHHHHHHHHHHHHHHHHHHHEFEEEEEEOHENHHNNNHNNCHEEEEEENHNCNECNNEECCEENNECHCECNNNNNENNFNNNNNNNNNNNOONNONNNNNNNNSFFFFFFOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNHHNNNNNNNNNNNNNNHONONNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNFFFOONHNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNHOHNNNNNNNNNNNNNNNNNNNNNHNNNNNNFFNNNNNNNNNNNNNNOONNOONNNNNNONNNOOONNNNNOONNNNOOOONNNNNNNNNNNNNNNFFONNNNNNNNNNNNNOHHHHHHNNNNONNNNNNNHNNNNHNHNNNNNNNNNNNNNNTTTTTFNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHPPPFFGNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNONNNNNNNOONNNNNNOONONNNNNNNNNNNNNNNNNNNNNSSFFOHNNNNNNNNHNNNNNNNONNHHNNNNNNNNNNNHONNNNNNNNNNNNNNECHHHHHHHHHFNNNNNNNNNNOONNNNONOONNNNNNNO","n":["DEV_NON_BLOCKING_ACCESS","__private_field","az","board","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","clear_bss","config","console","deref","drivers","from","fs","into","lang_items","mm","net","overflowing_as","overflowing_cast_from","print","println","rust_main","saturating_as","saturating_cast_from","sbi","sync","syscall","task","timer","trap","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","BlockDeviceImpl","CLOCK_FREQ","CharDeviceImpl","MEMORY_END","MMIO","VIRTGPU_XRES","VIRTGPU_YRES","VIRT_PLIC","VIRT_UART","condvar","condvars","device_init","inner","irq_handler","virtio_blk","CLOCK_FREQ","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","MEMORY_END","MMIO","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT_BASE","USER_STACK_SIZE","Stdout","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","into","overflowing_as","overflowing_cast_from","print","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write_str","BLOCK_DEVICE","BLOCK_DEVICE","block","bus","chardev","gpu","input","net","plic","BLOCK_DEVICE","VirtIOBlock","__private_field","az","block_device_test","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","into","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","virtio_blk","wrapping_as","wrapping_cast_from","VIRTIO0","VirtIOBlock","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","condvars","from","handle_irq","into","new","overflowing_as","overflowing_cast_from","read_block","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","virtio_blk","wrapping_as","wrapping_cast_from","write_block","virtio","QUEUE_FRAMES","VirtioHal","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","dma_alloc","dma_dealloc","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","phys_to_virt","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","virt_to_phys","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","CharDevice","NS16550a","UART","__private_field","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","handle_irq","init","into","ns16550a","overflowing_as","overflowing_cast_from","read","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write","AUX_OUTPUT1","AUX_OUTPUT2","DATA_AVAILABLE","DATA_TERMINAL_READY","IER","LSR","MCR","NS16550a","NS16550aInner","NS16550aRaw","REQUEST_TO_SEND","RX_AVAILABLE","ReadWithoutDLAB","THR_EMPTY","TX_EMPTY","WriteWithoutDLAB","_padding0","_padding1","_padding1","_padding2","all","all","all","az","az","az","az","az","az","az","az","base_addr","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","complement","complement","complement","condvar","contains","contains","contains","difference","difference","difference","empty","empty","empty","eq","eq","eq","extend","extend","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","from_iter","handle_irq","hash","hash","hash","ier","ier","iir","init","init","inner","insert","insert","insert","intersection","intersection","intersection","intersects","intersects","intersects","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_empty","is_empty","is_empty","lcr","lcr","lsr","lsr","mcr","mcr","new","new","not","not","not","ns16550a","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","partial_cmp","partial_cmp","rbr","read","read","read_buffer","read_buffer_is_empty","read_end","remove","remove","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","set","set","sub","sub","sub","sub_assign","sub_assign","sub_assign","symmetric_difference","symmetric_difference","symmetric_difference","thr","to_owned","to_owned","to_owned","toggle","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","write","write","write_end","BMP_DATA","GPU_DEVICE","GpuDevice","VIRTIO7","VirtIOGpuWrapper","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","fb","flush","flush","from","from","get_framebuffer","get_framebuffer","gpu","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","update_cursor","update_cursor","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","InputDevice","KEYBOARD_DEVICE","MOUSE_DEVICE","VIRTIO5","VIRTIO6","VirtIOInputInner","VirtIOInputWrapper","__private_field","__private_field","az","az","az","az","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","condvar","deref","deref","events","from","from","from","from","handle_irq","handle_irq","inner","into","into","into","into","is_empty","is_empty","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","read_event","read_event","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","virtio_input","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","NET_DEVICE","NetDevice","VIRTIO8","VirtIONetWrapper","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","from","from","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","receive","receive","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","transmit","transmit","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","IntrTargetPriority","Machine","PLIC","Supervisor","az","az","base_addr","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","claim","claim_comp_ptr_of_hart_with_priority","clone","clone_into","complete","disable","enable","enable_ptr","from","from","get_priority","get_threshold","hart_id_with_priority","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","priority_ptr","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_priority","set_threshold","supported_number","threshold_ptr_of_hart_with_priority","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","File","OpenFlags","Stdin","Stdout","inode","list_apps","make_pipe","open_file","pipe","read","readable","stdio","writable","write","CREATE","OSInode","OSInodeInner","OpenFlags","RDONLY","RDWR","ROOT_INODE","TRUNC","WRONLY","__private_field","all","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","cmp","complement","contains","deref","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","inner","inode","insert","intersection","intersects","into","into","into","into","is_all","is_empty","list_apps","new","not","offset","open_file","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","read","read_all","read_write","readable","readable","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","Empty","Full","Normal","Pipe","PipeRingBuffer","RING_BUFFER_SIZE","RingBufferStatus","all_write_ends_closed","arr","available_read","available_write","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffer","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","from","from","from","head","into","into","into","make_pipe","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","read","read_byte","read_end_with_buffer","readable","readable","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","set_write_end","status","tail","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write_byte","write_end","write_end_with_buffer","Stdin","Stdout","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","read","read","readable","readable","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write","backtrace","panic","FrameTracker","KERNEL_SPACE","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","PageTable","PageTableEntry","PhysAddr","PhysPageNum","StepByOne","UserBuffer","VPNRange","VirtAddr","VirtPageNum","address","frame_alloc","frame_alloc_more","frame_allocator","frame_dealloc","heap_allocator","init","kernel_token","memory_set","page_table","translated_byte_buffer","translated_ref","translated_refmut","translated_str","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","ceil","ceil","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_ref","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","l","new","new","next","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","r","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","step","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","alloc_more","alloc_more","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","current","current","dealloc","dealloc","deref","drop","end","end","fmt","frame_alloc","frame_alloc_more","frame_allocator_alloc_more_test","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","ppn","recycled","recycled","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","Linear","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","kernel_token","map","map_one","map_perm","map_trampoline","map_type","new","new_bare","new_kernel","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","vpn_range","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","UserBuffer","UserBufferIterator","V","W","X","all","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffers","buffers","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","current_buffer","current_idx","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","into","into","into_iter","into_iter","is_all","is_empty","is_valid","len","map","new","new","new","next","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","ppn","readable","remove","root_ppn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_ref","translated_refmut","translated_str","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","IPv4","LOSE_NET_STACK","NetStack","__private_field","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","deref","eq","fmt","fmt","from","from","from","from_u32","hexdump","into","into","into","net_interrupt_handler","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","port_table","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","socket","tcp","to_owned","to_string","to_string","to_u32","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","udp","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","LISTEN_TABLE","Port","PortFd","__private_field","accept","accept_connection","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","check_accept","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","drop","from","from","from","into","into","into","listen","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","port","port_acceptable","read","readable","receivable","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","schedule","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","write","SOCKET_TABLE","Socket","__private_field","ack","add_socket","az","az","borrow","borrow","borrow_mut","borrow_mut","buffers","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","from","from","get_s_a_by_index","get_socket","into","into","lport","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","pop_data","push_data","raddr","remove_socket","rport","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","seq","set_s_a_by_index","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","TCP","ack","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","dport","drop","from","into","new","overflowing_as","overflowing_cast_from","read","readable","saturating_as","saturating_cast_from","seq","socket_index","sport","target","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","writable","write","UDP","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","dport","drop","from","into","new","overflowing_as","overflowing_cast_from","read","readable","saturating_as","saturating_cast_from","socket_index","sport","target","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","writable","write","set_timer","shutdown","Condvar","Mutex","MutexBlocking","MutexSpin","Semaphore","UPIntrFreeCell","UPIntrRefMut","condvar","mutex","semaphore","up","Condvar","CondvarInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","signal","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wait_no_sched","wait_queue","wait_with_mutex","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","Mutex","MutexBlocking","MutexBlockingInner","MutexSpin","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","from","from","from","inner","into","into","into","lock","lock","lock","locked","locked","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unlock","unlock","unlock","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wait_queue","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","Semaphore","SemaphoreInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","count","down","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","up","wait_queue","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","INTR_MASKING_INFO","IntrMaskingInfo","UPIntrFreeCell","UPIntrRefMut","UPSafeCellRaw","__private_field","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","deref_mut","drop","enter","exclusive_access","exclusive_session","exit","from","from","from","from","from","get_mut","inner","inner","into","into","into","into","into","nested_level","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sie_before_masking","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","SYSCALL_ACCEPT","SYSCALL_CLOSE","SYSCALL_CONDVAR_CREATE","SYSCALL_CONDVAR_SIGNAL","SYSCALL_CONDVAR_WAIT","SYSCALL_CONNECT","SYSCALL_DUP","SYSCALL_EVENT_GET","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_FRAMEBUFFER","SYSCALL_FRAMEBUFFER_FLUSH","SYSCALL_GETPID","SYSCALL_GETTID","SYSCALL_GET_TIME","SYSCALL_KEY_PRESSED","SYSCALL_KILL","SYSCALL_LISTEN","SYSCALL_MUTEX_CREATE","SYSCALL_MUTEX_LOCK","SYSCALL_MUTEX_UNLOCK","SYSCALL_OPEN","SYSCALL_PIPE","SYSCALL_READ","SYSCALL_SEMAPHORE_CREATE","SYSCALL_SEMAPHORE_DOWN","SYSCALL_SEMAPHORE_UP","SYSCALL_SLEEP","SYSCALL_THREAD_CREATE","SYSCALL_WAITPID","SYSCALL_WAITTID","SYSCALL_WRITE","SYSCALL_YIELD","fs","gui","input","net","process","sync","syscall","thread","sys_close","sys_dup","sys_open","sys_pipe","sys_read","sys_write","FB_VADDR","sys_framebuffer","sys_framebuffer_flush","sys_event_get","sys_key_pressed","sys_accept","sys_connect","sys_listen","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_kill","sys_waitpid","sys_yield","sys_condvar_create","sys_condvar_signal","sys_condvar_wait","sys_mutex_create","sys_mutex_lock","sys_mutex_unlock","sys_semaphore_create","sys_semaphore_down","sys_semaphore_up","sys_sleep","sys_gettid","sys_thread_create","sys_waittid","IDLE_PID","INITPROC","KernelStack","PidHandle","SignalFlags","TaskContext","TaskControlBlock","TaskStatus","__private_field","add_initproc","add_task","az","block_current_and_run_next","block_current_task","borrow","borrow_mut","cast_from","check_signals_of_current","checked_as","checked_cast_from","context","current_add_signal","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","exit_current_and_run_next","from","id","into","kstack_alloc","manager","overflowing_as","overflowing_cast_from","pid2process","pid_alloc","process","processor","remove_from_pid2process","run_tasks","saturating_as","saturating_cast_from","schedule","signal","suspend_current_and_run_next","switch","take_current_task","task","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wakeup_task","wrapping_as","wrapping_cast_from","TaskContext","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","goto_trap_return","into","overflowing_as","overflowing_cast_from","ra","s","saturating_as","saturating_cast_from","sp","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","zero_init","IDLE_PID","KSTACK_ALLOCATOR","KernelStack","PID_ALLOCATOR","PidHandle","RecycleAllocator","TaskUserRes","__private_field","__private_field","alloc","alloc_tid","alloc_user_res","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","current","dealloc","dealloc_tid","dealloc_user_res","deref","deref","drop","drop","drop","from","from","from","from","from","from","get_top","into","into","into","into","into","into","kernel_stack_position","kstack_alloc","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid_alloc","process","push_on_top","recycled","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","tid","trap_cx_bottom_from_tid","trap_cx_ppn","trap_cx_user_va","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","ustack_base","ustack_base","ustack_bottom_from_tid","ustack_top","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","PID2PCB","TASK_MANAGER","TaskManager","__private_field","__private_field","add","add_task","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","fetch","fetch_task","from","from","from","insert_into_pid2process","into","into","into","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid2process","ready_queue","remove_from_pid2process","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wakeup_task","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","ProcessControlBlock","ProcessControlBlockInner","alloc_fd","alloc_tid","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","children","condvar_list","dealloc_tid","exec","exit_code","fd_table","fork","from","from","get_task","get_user_token","getpid","inner","inner_exclusive_access","into","into","is_zombie","memory_set","mutex_list","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","parent","pid","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","semaphore_list","signals","task_res_allocator","tasks","thread_count","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","PROCESSOR","Processor","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","current","current","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","run_tasks","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","SIGABRT","SIGFPE","SIGILL","SIGINT","SIGSEGV","SignalFlags","all","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow_mut","cast_from","check_error","checked_as","checked_cast_from","clone","clone_into","cmp","complement","contains","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","insert","intersection","intersects","into","is_all","is_empty","not","overflowing_as","overflowing_cast_from","partial_cmp","remove","saturating_as","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_into","type_id","union","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","__switch","Blocked","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","exit_code","from","from","from","get_status","get_trap_cx","get_user_token","inner","inner_exclusive_access","into","into","into","kstack","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","process","res","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","MSEC_PER_SEC","TICKS_PER_SEC","TIMERS","TimerCondVar","__private_field","add_timer","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","check_timer","checked_as","checked_as","checked_cast_from","checked_cast_from","cmp","deref","eq","expire_ms","from","from","get_time","get_time_ms","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","partial_cmp","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_next_trigger","task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","TrapContext","context","disable_supervisor_interrupt","enable_supervisor_interrupt","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","fmt","from","into","kernel_satp","kernel_sp","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","x"],"q":[[0,"os"],[40,"os::board"],[55,"os::config"],[65,"os::console"],[87,"os::drivers"],[96,"os::drivers::block"],[121,"os::drivers::block::virtio_blk"],[148,"os::drivers::bus"],[149,"os::drivers::bus::virtio"],[195,"os::drivers::chardev"],[224,"os::drivers::chardev::ns16550a"],[553,"os::drivers::gpu"],[607,"os::drivers::input"],[705,"os::drivers::net"],[754,"os::drivers::plic"],[815,"os::fs"],[829,"os::fs::inode"],[973,"os::fs::pipe"],[1063,"os::fs::stdio"],[1111,"os::lang_items"],[1113,"os::mm"],[1143,"os::mm::address"],[1338,"os::mm::frame_allocator"],[1427,"os::mm::heap_allocator"],[1432,"os::mm::memory_set"],[1626,"os::mm::page_table"],[1813,"os::net"],[1893,"os::net::port_table"],[1969,"os::net::socket"],[2024,"os::net::tcp"],[2056,"os::net::udp"],[2086,"os::sbi"],[2088,"os::sync"],[2099,"os::sync::condvar"],[2145,"os::sync::mutex"],[2218,"os::sync::semaphore"],[2264,"os::sync::up"],[2381,"os::syscall"],[2423,"os::syscall::fs"],[2429,"os::syscall::gui"],[2432,"os::syscall::input"],[2434,"os::syscall::net"],[2437,"os::syscall::process"],[2445,"os::syscall::sync"],[2455,"os::syscall::thread"],[2458,"os::task"],[2517,"os::task::context"],[2542,"os::task::id"],[2694,"os::task::manager"],[2768,"os::task::process"],[2833,"os::task::processor"],[2890,"os::task::signal"],[2959,"os::task::switch"],[2960,"os::task::task"],[3040,"os::timer"],[3094,"os::trap"],[3105,"os::trap::context"],[3134,"core::option"],[3135,"core::result"],[3136,"core::any"],[3137,"core::fmt"],[3138,"easy_fs::block_dev"],[3139,"alloc::sync"],[3140,"alloc::vec"],[3141,"core::cmp"],[3142,"core::iter::traits::collect"],[3143,"core::hash"],[3144,"easy_fs::vfs"],[3145,"core::panic::panic_info"],[3146,"core::marker"],[3147,"core::clone"],[3148,"core::alloc::layout"],[3149,"alloc::string"],[3150,"lose_net_stack::addr"],[3151,"lose_net_stack::packets::tcp"],[3152,"core::ops::function"],[3153,"alloc::collections::btree::map"],[3154,"alloc::collections::binary_heap"]],"i":[0,3,3,0,3,3,3,3,3,0,0,0,3,0,3,0,3,0,0,0,3,3,0,0,0,3,3,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,142,143,0,142,0,143,0,0,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,14,14,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,14,14,0,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0,0,21,144,21,144,21,144,21,144,21,144,21,144,21,21,144,144,144,21,144,21,144,21,144,21,144,144,21,144,21,144,21,144,21,144,21,144,21,144,21,144,144,21,144,21,0,0,0,25,25,25,25,25,25,25,25,25,27,27,25,0,25,25,27,25,25,25,25,25,25,25,25,25,27,30,30,29,30,0,0,0,0,0,0,30,28,0,29,28,0,38,37,38,37,28,29,30,37,38,36,145,26,28,29,30,36,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,26,28,29,30,37,38,37,36,26,26,28,29,30,28,29,30,28,29,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,37,38,37,38,37,38,36,26,28,29,30,145,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,37,36,26,145,26,36,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,28,29,30,28,29,30,28,29,30,38,28,29,30,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,37,38,36,145,26,28,29,30,36,26,36,0,0,0,0,0,39,41,39,41,39,41,39,41,39,41,39,41,39,39,41,40,41,41,39,40,41,41,41,39,41,41,39,41,39,41,39,41,39,41,39,41,39,41,39,41,39,41,39,40,41,41,39,41,39,0,0,0,0,0,0,0,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,45,42,44,146,146,45,42,44,43,45,45,146,45,42,44,43,45,45,146,45,42,44,146,45,42,44,43,45,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,45,42,44,146,146,45,42,44,146,45,42,44,0,0,0,0,47,49,47,49,47,49,47,49,47,49,47,49,47,47,49,47,49,47,49,49,47,49,47,48,49,49,47,49,47,48,49,49,47,49,47,49,47,49,47,49,47,49,47,49,47,0,51,0,51,50,51,50,50,51,50,51,50,51,50,51,50,51,50,50,51,51,50,50,50,50,50,51,50,50,50,50,51,50,50,51,50,51,50,50,51,50,51,50,50,51,50,51,50,51,50,51,50,51,50,51,50,51,50,51,50,51,0,0,0,0,0,0,0,0,0,53,53,0,53,53,55,0,0,0,55,55,0,55,55,56,55,58,147,56,55,55,55,55,55,55,55,55,55,58,147,56,55,58,147,56,55,58,147,56,55,58,147,56,55,58,147,56,55,55,55,55,55,55,56,55,55,55,55,55,55,55,55,55,58,147,56,55,55,55,55,55,55,58,147,55,55,55,58,147,56,55,55,55,0,58,55,147,0,58,147,56,55,58,147,56,55,55,58,58,55,58,58,55,58,147,56,55,58,147,56,55,55,55,55,55,55,55,58,147,56,55,58,147,56,55,58,147,56,55,55,58,147,56,55,58,147,56,55,58,147,56,55,58,147,56,55,58,58,58,60,60,60,0,0,0,0,59,59,59,59,61,59,60,61,59,60,61,59,60,61,61,59,60,61,59,60,61,59,60,60,60,60,61,59,60,59,61,59,60,0,59,61,59,60,61,59,60,61,59,61,61,61,61,59,60,61,59,60,59,59,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,59,60,61,61,61,59,59,61,0,0,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,62,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,66,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,65,66,78,65,66,67,68,69,78,65,66,67,68,69,65,66,67,68,69,65,66,67,68,69,65,66,67,68,78,78,65,66,67,68,65,66,65,66,67,68,78,65,65,65,66,66,66,67,67,67,68,68,68,69,67,69,65,67,67,65,69,68,78,65,66,67,68,69,78,69,148,69,78,69,78,78,65,66,67,68,69,78,65,66,67,68,69,65,66,65,66,67,68,148,69,78,65,66,67,68,69,78,65,66,67,68,69,70,67,68,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,78,65,66,67,68,69,0,0,0,0,0,81,79,80,79,80,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,80,149,79,80,81,22,80,149,22,0,0,0,0,0,22,80,81,80,0,22,80,81,79,22,80,22,80,81,22,80,81,22,80,149,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,22,80,81,0,0,0,0,0,85,85,0,85,0,0,0,0,84,84,84,84,88,83,84,83,83,86,88,85,84,84,84,84,84,84,84,84,84,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,85,84,85,84,84,84,84,86,86,88,84,0,0,0,84,85,84,0,0,84,85,84,84,84,84,84,83,86,88,85,84,86,84,84,84,83,83,84,84,84,83,84,84,83,86,88,85,84,84,84,0,86,86,86,83,86,86,83,83,84,83,86,88,85,84,83,86,88,85,84,83,84,83,83,0,84,83,83,86,88,85,84,83,86,88,85,84,0,0,84,0,0,0,84,84,84,85,84,84,83,83,83,86,88,85,84,83,86,88,85,84,83,86,88,85,84,84,86,86,83,86,88,85,84,83,86,88,85,84,86,83,86,88,85,84,83,86,88,85,84,89,89,89,0,0,0,89,89,0,0,89,89,89,89,87,54,90,89,76,89,89,89,89,89,89,76,89,89,87,54,90,89,76,87,54,90,89,76,54,90,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,89,76,89,76,89,89,89,90,90,89,89,76,89,76,89,87,87,76,89,89,89,89,89,87,87,54,90,89,76,89,89,89,89,87,89,89,89,89,87,54,90,89,76,54,90,89,89,76,54,87,87,54,76,90,89,87,54,90,89,76,87,54,90,89,76,89,76,76,89,87,87,54,90,89,76,87,54,90,89,76,89,89,89,89,89,76,89,87,87,87,0,0,0,0,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,89,87,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,87,54,90,89,76,76,0,0,0,93,92,94,93,92,94,93,92,94,93,92,94,93,92,94,93,92,94,93,92,92,93,92,92,92,92,94,93,92,0,92,94,93,0,92,94,92,94,93,92,94,93,0,92,94,93,92,94,93,0,0,92,92,92,92,92,94,93,92,94,93,92,94,93,0,92,94,93,92,94,93,92,94,93,92,94,93,0,0,0,99,0,0,100,101,99,100,101,99,100,101,99,100,101,99,0,100,101,99,100,101,99,99,101,100,101,99,100,101,99,0,101,100,101,99,100,101,99,100,0,101,101,100,100,101,99,100,101,99,100,100,101,99,100,101,99,100,101,99,100,101,99,100,101,99,100,101,99,100,101,99,101,101,0,0,102,103,0,103,102,103,102,103,102,103,103,102,103,102,103,102,102,103,102,0,0,103,102,103,103,102,103,102,0,0,103,0,103,103,102,103,102,103,0,103,102,103,102,103,102,103,102,103,102,103,102,103,102,0,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,0,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,150,106,150,106,150,106,150,106,150,106,150,106,150,106,106,150,106,106,150,106,150,106,150,106,150,106,106,150,106,150,106,150,106,150,106,150,106,150,106,106,150,106,150,0,0,0,0,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,110,109,110,151,108,109,110,109,151,109,110,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,109,110,151,108,109,110,109,110,151,109,110,151,151,109,110,151,109,110,151,0,0,111,152,111,152,111,152,111,152,111,152,111,152,152,111,111,152,111,111,152,111,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,111,152,0,0,0,0,0,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,112,113,112,112,114,5,5,114,115,114,5,112,113,115,115,5,115,114,5,112,113,114,115,114,5,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,114,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,115,114,5,112,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,0,0,120,0,0,120,120,120,0,120,120,0,0,0,0,0,0,0,0,120,0,120,0,120,0,0,120,120,0,0,0,0,0,0,120,120,0,0,0,0,0,0,120,120,120,120,120,0,120,120,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,0,0,0,0,0,0,0,124,125,122,123,123,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,122,123,123,124,125,126,127,123,122,126,127,123,124,125,127,122,126,127,123,124,125,0,0,122,123,122,126,127,123,124,125,122,126,127,123,124,125,0,123,127,122,122,126,127,123,124,125,122,126,127,123,124,125,123,0,123,123,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,122,126,127,123,124,125,123,123,0,123,122,126,127,123,124,125,122,126,127,123,124,125,0,0,0,130,131,129,0,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,130,131,129,0,129,130,131,0,129,130,131,129,129,130,131,129,130,131,0,129,0,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,129,130,131,0,129,130,131,129,130,131,0,0,133,133,121,133,121,133,121,133,121,133,121,133,121,133,133,133,133,121,133,133,121,121,133,133,133,121,121,121,121,133,133,133,133,121,121,133,121,133,133,121,121,133,121,133,133,133,133,133,133,121,133,121,133,121,133,121,133,121,133,121,133,121,133,0,0,136,134,136,134,136,134,136,134,136,134,136,134,136,134,134,0,0,0,0,0,0,136,134,136,134,134,134,136,134,134,136,134,136,0,134,136,134,136,0,134,0,134,136,134,136,134,136,134,136,134,136,134,136,134,136,119,119,119,119,119,0,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,0,137,137,137,0,0,0,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,137,137,137,138,96,138,137,138,138,96,96,96,96,138,137,96,96,96,138,137,96,138,137,96,138,96,138,137,96,138,137,138,138,137,138,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,96,138,137,0,0,0,0,140,0,139,140,139,140,139,140,139,140,0,139,140,139,140,139,140,139,139,139,140,0,0,139,140,139,140,139,140,139,139,140,139,140,0,139,139,140,139,140,139,140,139,140,139,140,139,140,139,140,0,0,0,0,0,0,0,0,0,0,0,0,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135],"f":"``{ce{}{}}`000{c{{b{e}}}{}{}}0{{}d}``{f{{j{h}}}}`{cc{}}`4```{c{{l{eh}}}{}{}}0``{{}n}66``````{c{{A`{e}}}{}{}}0{cAb{}}8888```````````6`6````````````8888774833{Add}992219999{{AfAh}Aj}````````````:8:::99{Al{{B`{An}}}}7;66;;443;;`;;``;;;;::`7{Bbd}<{{}Bb}88{{BbBd{Bh{Bf}}}d}>>776>>`>>0````>>>>>>>>===={Bj{{j{{Bn{Bl}}}}}}{BdBd}{{BdBd}C`}=={ce{}{}}0====20000;;;;::000020000````0000{c{{b{e}}}{}{}}0{Cb{{B`{Cd}}}}{cc{}}{Cfd}04`{c{{l{eh}}}{}{}}0{CfBf}66{c{{A`{e}}}{}{}}0{cAb{}}8888{{CfBf}d}````````````````````{{}Ch}{{}Cj}{{}Cl}<<<<<<<<`{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}{{ChCh}d}{{CjCj}d}{{ClCl}d}543210{ChBf}{CjBf}{ClBf}```876543{ce{}{}}00000000000000000000000{c{{b{e}}}{}{}}000000000000000{ChCh}{CjCj}{ClCl}{{ce}d{}{}}00{{ChCh}Cn}{{CjCj}Cn}{{ClCl}Cn}654`{{ChCh}h}{{CjCj}h}{{ClCl}h}{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}{{}Ch}{{}Cj}{{}Cl}876{{Chc}d{{Db{}{{D`{Ch}}}}}}{{Cjc}d{{Db{}{{D`{Cj}}}}}}{{Clc}d{{Db{}{{D`{Cl}}}}}}{{ChDd}Aj}0000{{CjDd}Aj}0000{{ClDd}Aj}0000{cc{}}0000000{Bf{{b{Ch}}}}{Bf{{b{Cj}}}}{Bf{{b{Cl}}}}{BfCh}{BfCj}{BfCl}210{cCh{{Db{}{{D`{Ch}}}}}}{cCj{{Db{}{{D`{Cj}}}}}}{cCl{{Db{}{{D`{Cl}}}}}}{Cdd}{{Chc}dDf}{{Cjc}dDf}{{Clc}dDf}```{Dhd}4`{{ChCh}d}{{CjCj}d}{{ClCl}d}{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}{{ChCh}h}{{CjCj}h}{{ClCl}h}{ce{}{}}0000000{Chh}{Cjh}{Clh}210``````{BdDh}{{}Cd}{ChCh}{CjCj}{ClCl}`{c{{l{eh}}}{}{}}000000000000000{{ChCh}{{b{Cn}}}}{{CjCj}{{b{Cn}}}}{{ClCl}{{b{Cn}}}}`{Dh{{b{Bf}}}}{CdBf}`{Cdh}{DhDj}{{ChCh}d}{{CjCj}d}{{ClCl}d}{ce{}{}}000000000000000{{ChChh}d}{{CjCjh}d}{{ClClh}d}{{ChCh}Ch}{{CjCj}Cj}{{ClCl}Cl}987210`666987{c{{A`{e}}}{}{}}000000000000000{cAb{}}000000043288888888888888888888888888888888{{DhBf}d}{{CdBf}d}{DhDl}``````;;;;;;;;{c{{b{e}}}{}{}}000{Dn{{B`{E`}}}}`{E`d}{Ebd}{cc{}}0{E`{{Bh{Bf}}}}{Eb{{Bh{Bf}}}}`{ce{}{}}0{{}Eb}{c{{l{eh}}}{}{}}0002222>>>>==2222762222`````````222222222222222299999999`{Ed{{B`{Ef}}}}{Eh{{B`{Ef}}}}`7777{Efd}{Ejd}`6666{Efh}{Ejh}{BdEj}77777777{EfEl}{EjEl};;;;;;;;{c{{A`{e}}}{}{}}0000000{cAb{}}000========`========`````========{c{{b{e}}}{}{}}000{En{{B`{F`}}}}{cc{}}0{ce{}{}}0{{}Fb}{c{{l{eh}}}{}{}}000{{F`{Bh{Bf}}}Bd}{{Fb{Bh{Bf}}}Bd}4444{{F`{Bh{Bf}}}d}{{Fb{Bh{Bf}}}d};;;;::66666666````66`6666669999{{FdBdFf}Fh}0{FfFf}{{ce}d{}{}}{{FdBdFfFh}d}{{FdBdFfBd}d}0{{FdBdFfBd}{{l{FhBd}}}}=={{FdBd}Fh}6{{BdFf}Bd}>>{BdFd}====2????{{FdBdFh}d}6{{}Bd}:{ce{}{}}{c{{A`{e}}}{}{}}000{cAb{}}022222222`````````{{FjFl}Bd}{Fjh}`01``````````{{}Fn}5555{{FnFn}Fn}{{FnFn}d}10{FnFh}`21888888888888{c{{b{e}}}{}{}}0000000{FnFn}{{ce}d{}{}}{{FnFn}Cn}2{{FnFn}h}{G`{{B`{Gb}}}}891{{Fnc}d{{Db{}{{D`{Fn}}}}}}{{FnDd}Aj}0000{cc{}}000{Fh{{b{Fn}}}}{FhFn}0{cFn{{Db{}{{D`{Fn}}}}}}{{Fnc}dDf}``>?8{ce{}{}}000{Fnh}0{{}d}{{hh{B`{Gb}}}Gd}?`{{AhFn}{{b{{B`{Gd}}}}}}{c{{l{eh}}}{}{}}0000000{{FnFn}{{b{Cn}}}}{{GdFl}Bd}{Gd{{Bn{Bf}}}}{Fn{{l{hh}}}}{Gdh}`{{FnFn}d};;;;;;;;{{FnFnh}d}{{FnFn}Fn}20=2{c{{A`{e}}}{}{}}0000000{cAb{}}0002????????????????5`8```````{Gfh}`{GfBd}0{ce{}{}}00000000`000{c{{b{e}}}{}{}}00000{GhGh}{{ce}d{}{}}{{GhGh}h}{cc{}}00`555{{}{{l{{B`{Gj}}{B`{Gj}}}}}}{{}Gf}{c{{l{eh}}}{}{}}00000{{GjFl}Bd}{GfBf}{{{B`{{j{Gf}}}}}Gj}{Gjh}`<<<<<<{{Gf{B`{Gj}}}d}``={c{{A`{e}}}{}{}}00000{cAb{}}00????????????3`6{{GfBf}d}`5``{ce{}{}}0000000{c{{b{e}}}{}{}}000==11::::{{GlFl}Bd}{{GnFl}Bd}{Glh}{Gnh}5555888877555555551032{{}d}{H`n}``````````````````````1```````````````````{Hbh}{Hdh}999999999999999999999999{HbHf}{HdHh}::::::::::::{HbHb}{HdHd}{HfHf}{HhHh}{{{Hj{c}}}{{Hj{c}}}{HlHnI`IbIdIf}}{{ce}d{}{}}0000{{HbHb}Cn}{{HdHd}Cn}{{HfHf}Cn}{{HhHh}Cn}``{{HbHb}h}{{HdHd}h}{{HfHf}h}{{HhHh}h}?>{{HbDd}Aj}{{HdDd}Aj}{{HfDd}Aj}{{HhDd}Aj}{cc{}}{HfHb}1{BdHb}{HhHd}{BdHd}4{HbHf}5{BdHf}6{HdHh}{BdHh}8{Hf{{Bh{Bf}}}}{{{Hj{c}}}c{HlHnI`IbId}}{Hbc{}}{Hfc{}}{Hf{{Bh{Ih}}}}23{Hh{{Ij{Bd}}}}{ce{}{}}000000{{{Hj{c}}}e{HlHnI`IbId}{}}``{{cc}{{Il{c}}}{HlHnI`IbId}}{{cc}{{Hj{c}}}{HlHnI`IbId}}{{{Il{c}}}{{b{e}}}{HlHnI`IbId}{}}{c{{l{eh}}}{}{}}00000000000{HbBd}{HdBd}{{HbHb}{{b{Cn}}}}{{HdHd}{{b{Cn}}}}{{HfHf}{{b{Cn}}}}{{HhHh}{{b{Cn}}}}``;;;;;;;;;;;;{Hld}{Hfd}{Hhd}>>>>>{c{{A`{e}}}{}{}}00000000000{cAb{}}00000{ce{}{}}00000000000000000000000``````{In{{b{Hf}}}}{J`{{b{Hf}}}}{{InBd}{{b{{Bn{Hf}}}}}}{{J`Bd}{{b{{Bn{Hf}}}}}}444444444444{c{{b{e}}}{}{}}00000``{{InHf}d}{{J`Hf}d}{Jb{{j{J`}}}}{Bld}``{{BlDd}Aj}{{}{{b{Bl}}}}{Bd{{b{{Bn{Bl}}}}}}{{}d}0{Hfd}{cc{}}00{{J`HfHf}d}3{ce{}{}}00{{}In}{HfBl}{{}J`}{c{{l{eh}}}{}{}}00000```444444{c{{A`{e}}}{}{}}00000{cAb{}}00666666666666``{Jdn};;`````````````{Jfd}{{}Jh}`99999{{JhJh}Jh}{{JhJh}d}10{JhBf}`21<<<<<<<<<<<<<<<{c{{b{e}}}{}{}}000000000{JjJj}{JhJh}{{ce}d{}{}}0{{JhJh}Cn}2{{JhJh}h}{{JlJn{Bh{Bf}}}d}`{K`{{B`{{j{Jf}}}}}}:```;{{JjJj}h}3``{{Jhc}d{{Db{}{{D`{Jh}}}}}}{{JjDd}Aj}{{JhDd}Aj}0000{cc{}}0000{JlJl}{Bf{{b{Jh}}}}{BfJh}0{{{Bh{Bf}}}{{l{JfBdBd}}}}{JfJf}{cJh{{Db{}{{D`{Jh}}}}}}{{Jhc}dDf}{{JhJh}d}{{JfHdHdJh}d}{{JhJh}Jh}{{JhJh}h}{ce{}{}}0000{Jhh}0{{}Bd}{{JlJn}d}{{JlJnHh}d}`{Jfd}`{{HdHdJjJh}Jl}{{}Jf}0{JhJh}{c{{l{eh}}}{}{}}000000000`{{JhJh}{{b{Cn}}}}{{JfJl{b{{Bh{Bf}}}}}d}6{{}d}{{JhJh}d}{{JfHh}d}>>>>>>>>>>``{{JhJhh}d}```{{JhJh}Jh}30{ce{}{}}04{JfBd}{{JfHh}{{b{Ih}}}}{c{{A`{e}}}{}{}}000000000{cAb{}}00005{{JlJn}d}{{JlJnHh}d}6666666666`6666666666`````````````{{}Kb}77777{{KbKb}Kb}{{KbKb}d}10{KbBf}``21::::::::::``:::::{c{{b{e}}}{}{}}000000000{KbKb}{IhIh}{{ce}d{}{}}0{{KbKb}Cn}3{{KbKb}h}``89{{}Ih}1{Ihh}{{Kbc}d{{Db{}{{D`{Kb}}}}}}{{JnHh}{{b{Ih}}}}0{IhKb}{{KbDd}Aj}0000`{cc{}}0000{Bf{{b{Kb}}}}{BfKb}0{cKb{{Db{}{{D`{Kb}}}}}}{BdJn}{{Kbc}dDf}{{KbKb}d}{{KbKb}Kb}>{ce{}{}}0000{Flc{}}1{Kbh}0?{FlBd}{{JnHhHfKb}d}{{}Jn}{{{Bn{{Bh{Bf}}}}}Fl}{{HfKb}Ih}{Kd{{b{c}}}{}}{KbKb}{c{{l{eh}}}{}{}}000000000{{KbKb}{{b{Cn}}}}{IhHf}{Ihh}?`=========={{KbKbh}d}?{{KbKb}d}{{KbKb}Kb}{ce{}{}}02{JnBd}{{JnHh}{{b{Ih}}}}{{JnHd}{{b{Hb}}}}{{BdBfBd}{{Bn{{Bh{Bf}}}}}}{Bdc{}}0{{BdBf}Kf}{c{{A`{e}}}{}{}}000000000{cAb{}}00009{{JnHh}d}99999999999999999999=````999999999999{c{{b{e}}}{}{}}00000{KhKh}{{ce}d{}{}}{Kj{{B`{Kl}}}}{{KhKh}h}{{KhDd}{{A`{dKn}}}}0{cc{}}00{FhKh}{{{Bh{Bf}}}d}{ce{}{}}00{{}d}{{BfBfBfBf}Kh}{{}Kl}{c{{l{eh}}}{}{}}00000`444444``4{cKf{}}{KhKf}{KhFh}{c{{A`{e}}}{}{}}00000{cAb{}}00`999999999999````{{Bd{B`{L`}}}d}{{LbLd{B`{L`}}}d};;;;;;;;;;;;{{LbLd}{{b{d}}}}{c{{b{e}}}{}{}}00000{Lf{{j{{Bn{{b{Lh}}}}}}}}{Ljd}{cc{}}00{ce{}{}}00{Lb{{b{Bd}}}}{BdLj}??????`{Bdh}{{LjFl}Bd}{Ljh}`555555`>>>>>>===55555555555501````{{KhLbLb}{{b{Bd}}}}666666`66::::{Ll{{j{{Bn{{b{Ln}}}}}}}}88{Bd{{b{{l{FhFh}}}}}}288`{c{{l{eh}}}{}{}}000{Bd{{b{{Bn{Bf}}}}}}{{Bd{Bn{Bf}}}d}`{Bdd}`<<<<`{{BdFhFh}d}{c{{A`{e}}}{}{}}000{cAb{}}0????????``????{c{{b{e}}}{}{}}0`{M`d}{cc{}}{ce{}{}}{{KhLbLbFhFh}M`};;{{M`Fl}Bd}{M`h}33````887333301`333366`{Mbd}54{{KhLbLb}Mb}??{{MbFl}Bd}{Mbh}77```<<;777701>{hn}`````````````88888888;;;;99`88{{}Md}{c{{l{eh}}}{}{}}000::::{Mdd}{c{{A`{e}}}{}{}}000{cAb{}}0===={MdMf}`{{Md{B`{Mh}}}d}????````????????????{c{{b{e}}}{}{}}00000{cc{}}00`{ce{}{}}00{Mhd}{Mjd}{Mld}``{{}Mj}{{}Ml}======555555;;;;;;:::432555555`555555``555555557777`{Mnd}77`66{BdMn}????7777====<<77771`7777``````777777777777777777779999999999{{{N`{c}}}e{}{}}{Nb{{Nf{Nd}}}}1{{{N`{c}}}d{}}{Ndd}{{{j{c}}}{{N`{c}}}{}}{{{j{c}}g}e{}{}{{Nj{c}{{Nh{e}}}}}}2>>>>>{{{Nf{c}}}c{}}``>>>>>`{c{{Nf{c}}}{}}{{}Nd}{c{{j{c}}}{}}{c{{l{eh}}}{}{}}000000000{ce{}{}}000000000`{c{{A`{e}}}{}{}}000000000{cAb{}}000022222222222222222222````````````````````````````````````````{{Bd{Ij{Bd}}}Nl}`{BdNl}0{{BfFh}Nl}1{{BdBfBd}Nl}0`{{}Nl}0003{{FhLbLb}Nl}{LbNl}{{BfBd}Nl}{C`n}444{{BdFh}Nl}{{NlC`}Nl}669{{BdBd}Nl}{hNl};;;;;;81{BdC`}`````````{{}d}`{ce{}{}}1{{}Mf}111{{}{{b{{l{C`Ah}}}}}}{c{{b{e}}}{}{}}0`{Nnd}``````{O`{{B`{Ob}}}}{C`d}{cc{}}`7``{c{{l{eh}}}{}{}}0``````88``9```{c{{A`{e}}}{}{}}0{cAb{}}::`::`::::773{BdMf};33``;;`221;;;;:`````````{OdBd}{Ofd}0========================::::::::::::`{{OdBd}d}11{Oh{{j{Od}}}}{Oj{{j{Od}}}}{Old}{Ond}5;;;;;;{OnBd}{ce{}{}}00000{Bd{{l{BdBd}}}}{{}On}{{}Od}{{{B`{Ob}}Bdh}Of}{c{{l{eh}}}{}{}}00000000000{{}Ol}`{{Onc}{}A@`}`777777777777`{BdBd}{OfHf}{OfBd}{c{{A`{e}}}{}{}}00000000000{cAb{}}00000<<<<<<<<<<<<2`{{BdBd}Bd}3============`````{{A@b{B`{L`}}}d}{{{B`{L`}}}d}????????????{c{{b{e}}}{}{}}00000{A@d{{j{A@b}}}}{A@f{{j{{A@h{Bd{B`{Ob}}}}}}}}{A@b{{b{{B`{L`}}}}}}{{}{{b{{B`{L`}}}}}}{cc{}}00{{Bd{B`{Ob}}}d}{ce{}{}}00{{}A@b}{c{{l{eh}}}{}{}}00000{Bd{{b{{B`{Ob}}}}}}`{Bdd}444444{c{{A`{e}}}{}{}}00000{cAb{}}00666666>666666``{A@jBd}077777777>>>>``{{A@jBd}d}{{{B`{Ob}}{Bh{Bf}}{Bn{Kf}}}d}``{{{B`{Ob}}}{{B`{Ob}}}}<<{{A@jBd}{{B`{L`}}}}4{ObBd}`{Ob{{N`{A@j}}}}==```{{{Bh{Bf}}}{{B`{Ob}}}}<<<<``>>>>````7999988>>>>>>>>```>>>>>>>>{c{{b{e}}}{}{}}000{A@l{{b{{B`{L`}}}}}}`{{}Bd}{{}{{B`{Ob}}}}{{}{{b{{B`{L`}}}}}}{{}A@n}33{AA`{{j{A@l}}}}{cc{}}0{A@lMf}`{ce{}{}}0{{}A@l}{c{{l{eh}}}{}{}}000{{}d}3333{Mfd}<9{c{{A`{e}}}{}{}}000{cAb{}}066666666``````{{}Nn}7{{NnNn}Nn}{{NnNn}d}10{NnFh}`21:::{Nn{{b{{l{C`Ah}}}}}}{c{{b{e}}}{}{}}0{NnNn}{{ce}d{}{}}{{NnNn}Cn}2{{NnNn}h}890{{Nnc}d{{Db{}{{D`{Nn}}}}}}{{NnDd}Aj}0000{cc{}}{Fh{{b{Nn}}}}{FhNn}0{cNn{{Db{}{{D`{Nn}}}}}}{{Nnc}dDf}>?7{ce{}{}}{Nnh}0<{c{{l{eh}}}{}{}}0{{NnNn}{{b{Cn}}}}{{NnNn}d}44{{NnNnh}d}{{NnNn}Nn}2062{c{{A`{e}}}{}{}}0{cAb{}}28888```````888888888888{c{{b{e}}}{}{}}00000{AAbAAb}{{ce}d{}{}}{{AAbAAb}h}`{cc{}}00{AAdAAb}{AAdA@n}{L`Bd}`{L`{{N`{AAd}}}}{ce{}{}}00`{{{B`{Ob}}Bdh}L`}{c{{l{eh}}}{}{}}00000``222222``2`======<<<222222222222`````{{Bd{B`{L`}}}d}33333333{{}d}===={{AAfAAf}Cn}{AAh{{j{{AAj{AAf}}}}}}{{AAfAAf}h}`<<{{}Bd}0886666{{AAfAAf}{{b{Cn}}}}99995`{c{{A`{e}}}{}{}}000{cAb{}}0;;;;;;;;``777777{A@nd}{{}n}0`{{BdBdBdBdBd}A@n}>>>>{c{{b{e}}}{}{}}0{{A@nDd}Aj}{cc{}}{ce{}{}}``{c{{l{eh}}}{}{}}011`{{A@nBd}d}``::92222`","D":"CFb","p":[[6,"Option",3134],[1,"unit"],[5,"DEV_NON_BLOCKING_ACCESS",0],[1,"bool"],[5,"UPIntrFreeCell",2264],[1,"tuple"],[1,"never"],[6,"Result",3135],[5,"TypeId",3136],[5,"Arguments",3137],[5,"Stdout",65],[1,"str"],[8,"Result",3137],[5,"BLOCK_DEVICE",96],[10,"BlockDevice",3138],[5,"Arc",3139],[5,"VirtIOBlock",121],[1,"usize"],[1,"u8"],[1,"slice"],[5,"QUEUE_FRAMES",149],[5,"FrameTracker",1338],[5,"Vec",3140],[1,"i32"],[5,"UART",195],[5,"NS16550a",224],[10,"CharDevice",195],[5,"IER",224],[5,"LSR",224],[5,"MCR",224],[6,"Ordering",3141],[17,"Item"],[10,"IntoIterator",3142],[5,"Formatter",3137],[10,"Hasher",3143],[5,"NS16550aRaw",224],[5,"ReadWithoutDLAB",224],[5,"WriteWithoutDLAB",224],[5,"GPU_DEVICE",553],[10,"GpuDevice",553],[5,"VirtIOGpuWrapper",553],[5,"KEYBOARD_DEVICE",607],[10,"InputDevice",607],[5,"MOUSE_DEVICE",607],[5,"VirtIOInputWrapper",607],[1,"u64"],[5,"NET_DEVICE",705],[10,"NetDevice",705],[5,"VirtIONetWrapper",705],[5,"PLIC",754],[6,"IntrTargetPriority",754],[1,"u32"],[10,"File",815],[5,"UserBuffer",1626],[5,"OpenFlags",829],[5,"ROOT_INODE",829],[5,"Inode",3144],[5,"OSInode",829],[5,"PipeRingBuffer",973],[6,"RingBufferStatus",973],[5,"Pipe",973],[5,"Stdin",1063],[5,"Stdout",1063],[5,"PanicInfo",3145],[5,"PhysAddr",1143],[5,"VirtAddr",1143],[5,"PhysPageNum",1143],[5,"VirtPageNum",1143],[5,"SimpleRange",1143],[10,"StepByOne",1143],[10,"Copy",3146],[10,"PartialEq",3141],[10,"PartialOrd",3141],[10,"Debug",3137],[10,"Clone",3147],[5,"PageTableEntry",1626],[1,"array"],[5,"SimpleRangeIterator",1143],[10,"FrameAllocator",1338],[5,"StackFrameAllocator",1338],[5,"FRAME_ALLOCATOR",1338],[5,"Layout",3148],[5,"MemorySet",1432],[5,"MapPermission",1432],[6,"MapType",1432],[5,"MapArea",1432],[5,"PageTable",1626],[5,"KERNEL_SPACE",1432],[5,"PTEFlags",1626],[5,"UserBufferIterator",1626],[5,"String",3149],[5,"IPv4",1813,3150],[5,"LOSE_NET_STACK",1813],[5,"NetStack",1813],[5,"Error",3137],[5,"TaskControlBlock",2960],[1,"u16"],[5,"TCPPacket",3151],[5,"LISTEN_TABLE",1893],[5,"Port",1893],[5,"PortFd",1893],[5,"SOCKET_TABLE",1969],[5,"Socket",1969],[5,"TCP",2024],[5,"UDP",2056],[5,"Condvar",2099],[5,"TaskContext",2517],[10,"Mutex",2145],[5,"MutexSpin",2145],[5,"MutexBlocking",2145],[5,"Semaphore",2218],[5,"UPIntrRefMut",2264],[5,"INTR_MASKING_INFO",2264],[5,"IntrMaskingInfo",2264],[5,"UPSafeCellRaw",2264],[17,"Output"],[10,"FnOnce",3152],[1,"isize"],[5,"SignalFlags",2890],[5,"INITPROC",2458],[5,"ProcessControlBlock",2768],[5,"RecycleAllocator",2542],[5,"TaskUserRes",2542],[5,"PID_ALLOCATOR",2542],[5,"KSTACK_ALLOCATOR",2542],[5,"PidHandle",2542],[5,"KernelStack",2542],[10,"Sized",3146],[5,"TaskManager",2694],[5,"TASK_MANAGER",2694],[5,"PID2PCB",2694],[5,"BTreeMap",3153],[5,"ProcessControlBlockInner",2768],[5,"Processor",2833],[5,"TrapContext",3105],[5,"PROCESSOR",2833],[6,"TaskStatus",2960],[5,"TaskControlBlockInner",2960],[5,"TimerCondVar",3040],[5,"TIMERS",3040],[5,"BinaryHeap",3154],[8,"CharDeviceImpl",40],[8,"BlockDeviceImpl",40],[5,"VirtioHal",149],[5,"NS16550aInner",224],[5,"VirtIOInputInner",607],[5,"OSInodeInner",829],[8,"VPNRange",1143],[8,"FrameAllocatorImpl",1338],[5,"CondvarInner",2099],[5,"MutexBlockingInner",2145],[5,"SemaphoreInner",2218]],"r":[[55,40],[58,40],[59,40],[87,96],[88,96],[97,121],[196,224],[816,829],[817,1063],[818,1063],[820,829],[821,973],[822,829],[1113,1338],[1114,1432],[1115,1432],[1116,1432],[1117,1432],[1118,1432],[1119,1432],[1120,1626],[1121,1626],[1122,1143],[1123,1143],[1124,1143],[1125,1626],[1126,1143],[1127,1143],[1128,1143],[1130,1338],[1131,1338],[1133,1338],[1136,1432],[1139,1626],[1140,1626],[1141,1626],[1142,1626],[1813,3150],[2088,2099],[2089,2145],[2090,2145],[2091,2145],[2092,2218],[2093,2264],[2094,2264],[2458,2542],[2460,2542],[2461,2542],[2462,2890],[2463,2517],[2464,2960],[2465,2960],[2468,2694],[2480,2833],[2481,2833],[2482,2833],[2483,2833],[2484,2833],[2485,2833],[2491,2542],[2495,2694],[2496,2542],[2499,2694],[2500,2833],[2503,2833],[2507,2833],[2514,2694],[3094,3105]],"b":[[348,"impl-Debug-for-IER"],[349,"impl-UpperHex-for-IER"],[350,"impl-Binary-for-IER"],[351,"impl-Octal-for-IER"],[352,"impl-LowerHex-for-IER"],[353,"impl-Binary-for-LSR"],[354,"impl-Debug-for-LSR"],[355,"impl-LowerHex-for-LSR"],[356,"impl-UpperHex-for-LSR"],[357,"impl-Octal-for-LSR"],[358,"impl-UpperHex-for-MCR"],[359,"impl-Binary-for-MCR"],[360,"impl-LowerHex-for-MCR"],[361,"impl-Debug-for-MCR"],[362,"impl-Octal-for-MCR"],[882,"impl-Binary-for-OpenFlags"],[883,"impl-Octal-for-OpenFlags"],[884,"impl-LowerHex-for-OpenFlags"],[885,"impl-Debug-for-OpenFlags"],[886,"impl-UpperHex-for-OpenFlags"],[1222,"impl-From%3CPhysPageNum%3E-for-PhysAddr"],[1224,"impl-From%3Cusize%3E-for-PhysAddr"],[1225,"impl-From%3CVirtPageNum%3E-for-VirtAddr"],[1226,"impl-From%3Cusize%3E-for-VirtAddr"],[1228,"impl-From%3CPhysAddr%3E-for-PhysPageNum"],[1230,"impl-From%3Cusize%3E-for-PhysPageNum"],[1232,"impl-From%3CVirtAddr%3E-for-VirtPageNum"],[1233,"impl-From%3Cusize%3E-for-VirtPageNum"],[1507,"impl-LowerHex-for-MapPermission"],[1508,"impl-Octal-for-MapPermission"],[1509,"impl-Debug-for-MapPermission"],[1510,"impl-Binary-for-MapPermission"],[1511,"impl-UpperHex-for-MapPermission"],[1699,"impl-Octal-for-PTEFlags"],[1700,"impl-UpperHex-for-PTEFlags"],[1701,"impl-LowerHex-for-PTEFlags"],[1702,"impl-Debug-for-PTEFlags"],[1703,"impl-Binary-for-PTEFlags"],[1839,"impl-Display-for-IPv4"],[1840,"impl-Debug-for-IPv4"],[2921,"impl-Debug-for-SignalFlags"],[2922,"impl-Binary-for-SignalFlags"],[2923,"impl-Octal-for-SignalFlags"],[2924,"impl-UpperHex-for-SignalFlags"],[2925,"impl-LowerHex-for-SignalFlags"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAI0KjAAAAA4AEAAAABIANgBLACAAbgAUAIQAAACGACEArAAiANAAAQDTABEA6AAIAPgACAAQAQIAGQEwAE0BAABXARQAfQEGAIcBAgCnAQEArAETAMEBBADJAQ8A5gECAOwBFwAHAjgAQgICAEcCPQCJAgIAkAJDANgCMwAOAwIAEwM0AEkDAwBSAwAAVQMWAG4DAABxAwYAfwMDAIwDAQCPAwwAnQMBAKADBwCsAwAArgMLALsDMwDyAwAA9wM+ADoEPwB7BEoAxwQAAMkEAgDNBAAAzwQAANEEAQDUBAcA4gSCAGgFAQBtBS4AnQUJAKgFBQCzBQAAtgUdANcFAQDaBQIA3gUKAO4FAADzBQIAAQYDAAYGAgALBgsAGAYBABsGDAApBgIALwYBADIGEABEBiMAaQYEAHMGAQB3Bh8AmQYBAJ0GDACyBgAAtAYAAL0GAQDBBgYAyQYMANcGCgDmBgEA6QYFAPAGDgAABzEANQcBADoHRgCHBz0AyAcAAMsHJwD1BxwAFAgSACkIGABECAAARwgwAHsIAAB/CDsAvQgAAMAIQQADCQEACgkBABIJbwCDCQgAjQkMAJsJDACpCQ4AugkAALwJIADeCQAA4AlHAC4KAAA2Cm0ApwoAAKsKOADlCgEA6goEAPEKOAAsCwEAMAsgAFILAABYCwAAWwsIAGgLBgBzCwEAfAsCAIALAQCGCwAAiAsCAIwLIACwCwQAuAs/APoLAQD+CywALQwRAA=="}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/main/search.desc/os/os-desc-0-.js b/main/search.desc/os/os-desc-0-.js new file mode 100644 index 00000000..4c350142 --- /dev/null +++ b/main/search.desc/os/os-desc-0-.js @@ -0,0 +1 @@ +searchState.loadedDescShard("os", 0, "Returns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nInterruptEnableRegister\nLineStatusRegister\nModel Control Register\nignore FCR\nignore MSR\nignore other registers\nignore SCR\nReturns the set containing all flags.\nReturns the set containing all flags.\nReturns the set containing all flags.\nReturns the intersection between the two sets of flags.\nReturns the intersection between the two sets of flags.\nReturns the intersection between the two sets of flags.\nDisables all flags disabled in the set.\nDisables all flags disabled in the set.\nDisables all flags disabled in the set.\nReturns the union of the two sets of flags.\nReturns the union of the two sets of flags.\nReturns the union of the two sets of flags.\nAdds the set of flags.\nAdds the set of flags.\nAdds the set of flags.\nReturns the raw value of the flags currently stored.\nReturns the raw value of the flags currently stored.\nReturns the raw value of the flags currently stored.\nReturns the left flags, but with all the right flags …\nReturns the left flags, but with all the right flags …\nReturns the left flags, but with all the right flags …\nToggles the set of flags.\nToggles the set of flags.\nToggles the set of flags.\nReturns the complement of this set of flags.\nReturns the complement of this set of flags.\nReturns the complement of this set of flags.\nReturns true if all of the flags in other are contained …\nReturns true if all of the flags in other are contained …\nReturns true if all of the flags in other are contained …\nReturns the difference between the flags in self and other.\nReturns the difference between the flags in self and other.\nReturns the difference between the flags in self and other.\nReturns an empty set of flags.\nReturns an empty set of flags.\nReturns an empty set of flags.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvert from underlying bit representation, unless that …\nConvert from underlying bit representation, unless that …\nConvert from underlying bit representation, unless that …\nConvert from underlying bit representation, dropping any …\nConvert from underlying bit representation, dropping any …\nConvert from underlying bit representation, dropping any …\nConvert from underlying bit representation, preserving all …\nConvert from underlying bit representation, preserving all …\nConvert from underlying bit representation, preserving all …\ninterrupt enable register\ninterrupt enable register\ninterrupt identification register\nInserts the specified flags in-place.\nInserts the specified flags in-place.\nInserts the specified flags in-place.\nReturns the intersection between the flags in self and …\nReturns the intersection between the flags in self and …\nReturns the intersection between the flags in self and …\nReturns true if there are flags common to both self and …\nReturns true if there are flags common to both self and …\nReturns true if there are flags common to both self and …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if all flags are currently set.\nReturns true if all flags are currently set.\nReturns true if all flags are currently set.\nReturns true if no flags are currently stored.\nReturns true if no flags are currently stored.\nReturns true if no flags are currently stored.\nline control register\nline control register\nline status register\nline status register\nmodel control register\nmodem control register\nReturns the complement of this set of flags.\nReturns the complement of this set of flags.\nReturns the complement of this set of flags.\nreceiver buffer register\nRemoves the specified flags in-place.\nRemoves the specified flags in-place.\nRemoves the specified flags in-place.\nInserts or removes the specified flags depending on the …\nInserts or removes the specified flags depending on the …\nInserts or removes the specified flags depending on the …\nReturns the set difference of the two sets of flags.\nReturns the set difference of the two sets of flags.\nReturns the set difference of the two sets of flags.\nDisables all flags enabled in the set.\nDisables all flags enabled in the set.\nDisables all flags enabled in the set.\nReturns the symmetric difference between the flags in self …\nReturns the symmetric difference between the flags in self …\nReturns the symmetric difference between the flags in self …\ntransmitter holding register\nToggles the specified flags in-place.\nToggles the specified flags in-place.\nToggles the specified flags in-place.\nReturns the union of between the flags in self and other.\nReturns the union of between the flags in self and other.\nReturns the union of between the flags in self and other.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the set containing all flags.\nReturns the intersection between the two sets of flags.\nDisables all flags disabled in the set.\nReturns the union of the two sets of flags.\nAdds the set of flags.\nReturns the raw value of the flags currently stored.\nReturns the left flags, but with all the right flags …\nToggles the set of flags.\nReturns the complement of this set of flags.\nReturns true if all of the flags in other are contained …\nReturns the difference between the flags in self and other.\nReturns an empty set of flags.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvert from underlying bit representation, unless that …\nConvert from underlying bit representation, dropping any …\nConvert from underlying bit representation, preserving all …\nInserts the specified flags in-place.\nReturns the intersection between the flags in self and …\nReturns true if there are flags common to both self and …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if all flags are currently set.\nReturns true if no flags are currently stored.\nReturns the complement of this set of flags.\nDo not check validity for simplicity Return (readable, …\nRemoves the specified flags in-place.\nInserts or removes the specified flags depending on the …\nReturns the set difference of the two sets of flags.\nDisables all flags enabled in the set.\nReturns the symmetric difference between the flags in self …\nToggles the specified flags in-place.\nReturns the union of between the flags in self and other.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn (read_end, write_end)\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nDefinitions\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\noffset of page num\nReturns the set containing all flags.\nReturns the intersection between the two sets of flags.\nDisables all flags disabled in the set.\nReturns the union of the two sets of flags.\nAdds the set of flags.\nReturns the raw value of the flags currently stored.\nReturns the left flags, but with all the right flags …\nToggles the set of flags.\nReturns the complement of this set of flags.\nReturns true if all of the flags in other are contained …\ndata: start-aligned but maybe with shorter length assume …\nReturns the difference between the flags in self and other.\nReturns an empty set of flags.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvert from underlying bit representation, unless that …\nConvert from underlying bit representation, dropping any …\nConvert from underlying bit representation, preserving all …\nInclude sections in elf and trampoline, also returns …\nInserts the specified flags in-place.\nAssume that no conflicts.\nReturns the intersection between the flags in self and …\nReturns true if there are flags common to both self and …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if all flags are currently set.\nReturns true if no flags are currently stored.\nMention that trampoline is not collected by areas.\nWithout kernel stacks.\nReturns the complement of this set of flags.\nAdd a new MapArea into this MemorySet. Assuming that there …\nRemoves the specified flags in-place.\nInserts or removes the specified flags depending on the …\nReturns the set difference of the two sets of flags.\nDisables all flags enabled in the set.\nReturns the symmetric difference between the flags in self …\nToggles the specified flags in-place.\nReturns the union of between the flags in self and other.\nReturns the set containing all flags.\nReturns the intersection between the two sets of flags.\nDisables all flags disabled in the set.\nReturns the union of the two sets of flags.\nAdds the set of flags.\nReturns the raw value of the flags currently stored.\nReturns the left flags, but with all the right flags …\nToggles the set of flags.\nReturns the complement of this set of flags.\nReturns true if all of the flags in other are contained …\nReturns the difference between the flags in self and other.\nReturns an empty set of flags.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvert from underlying bit representation, unless that …\nConvert from underlying bit representation, dropping any …\nConvert from underlying bit representation, preserving all …\nTemporarily used to get arguments from user space.\nInserts the specified flags in-place.\nReturns the intersection between the flags in self and …\nReturns true if there are flags common to both self and …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if all flags are currently set.\nReturns true if no flags are currently stored.\nReturns the complement of this set of flags.\nRemoves the specified flags in-place.\nInserts or removes the specified flags depending on the …\nReturns the set difference of the two sets of flags.\nDisables all flags enabled in the set.\nReturns the symmetric difference between the flags in self …\nToggles the specified flags in-place.\nLoad a string from other address spaces into kernel space …\nReturns the union of between the flags in self and other.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nget the seq and ack by socket index\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nuse sbi call to set timer\nuse sbi call to shutdown the kernel\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nPanic if the data has been borrowed.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\ninner data\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\ncheck UART’s read-buffer is empty or not\nIf there is not a child process whose pid is same as …\nthread does not exist, return -1 thread has not exited …\nThis function must be followed by a schedule\nExit the current ‘Running’ task and run the next task …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturn (bottom, top) of a kernel stack in kernel space.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOnly support processes with a single thread.\nOnly support processes with a single thread.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the set containing all flags.\nReturns the intersection between the two sets of flags.\nDisables all flags disabled in the set.\nReturns the union of the two sets of flags.\nAdds the set of flags.\nReturns the raw value of the flags currently stored.\nReturns the left flags, but with all the right flags …\nToggles the set of flags.\nReturns the complement of this set of flags.\nReturns true if all of the flags in other are contained …\nReturns the difference between the flags in self and other.\nReturns an empty set of flags.\nReturns the argument unchanged.\nConvert from underlying bit representation, unless that …\nConvert from underlying bit representation, dropping any …\nConvert from underlying bit representation, preserving all …\nInserts the specified flags in-place.\nReturns the intersection between the flags in self and …\nReturns true if there are flags common to both self and …\nCalls U::from(self).\nReturns true if all flags are currently set.\nReturns true if no flags are currently stored.\nReturns the complement of this set of flags.\nRemoves the specified flags in-place.\nInserts or removes the specified flags depending on the …\nReturns the set difference of the two sets of flags.\nDisables all flags enabled in the set.\nReturns the symmetric difference between the flags in self …\nToggles the specified flags in-place.\nReturns the union of between the flags in self and other.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).") \ No newline at end of file diff --git a/main/settings.html b/main/settings.html index 63ab9477..1a783e5d 100644 --- a/main/settings.html +++ b/main/settings.html @@ -1,2 +1 @@ -Settings -

Rustdoc settings

Back
\ No newline at end of file +Settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/main/src/os/boards/qemu.rs.html b/main/src/os/boards/qemu.rs.html index 8e46b260..0a810259 100644 --- a/main/src/os/boards/qemu.rs.html +++ b/main/src/os/boards/qemu.rs.html @@ -1,6 +1,4 @@ -qemu.rs - source -
1
+qemu.rs - source
1
 2
 3
 4
diff --git a/main/src/os/config.rs.html b/main/src/os/config.rs.html
index 4e5095ec..938bc140 100644
--- a/main/src/os/config.rs.html
+++ b/main/src/os/config.rs.html
@@ -1,6 +1,4 @@
-config.rs - source
-    
1
+config.rs - source
1
 2
 3
 4
diff --git a/main/src/os/console.rs.html b/main/src/os/console.rs.html
index 03f284bd..94e503da 100644
--- a/main/src/os/console.rs.html
+++ b/main/src/os/console.rs.html
@@ -1,6 +1,4 @@
-console.rs - source
-    
1
+console.rs - source
1
 2
 3
 4
@@ -52,14 +50,14 @@
 }
 
 #[macro_export]
-macro_rules! print {
+macro_rules! print {
     ($fmt: literal $(, $($arg: tt)+)?) => {
         $crate::console::print(format_args!($fmt $(, $($arg)+)?))
     }
 }
 
 #[macro_export]
-macro_rules! println {
+macro_rules! println {
     ($fmt: literal $(, $($arg: tt)+)?) => {
         $crate::console::print(format_args!(concat!($fmt, "\n") $(, $($arg)+)?))
     }
diff --git a/main/src/os/drivers/block/mod.rs.html b/main/src/os/drivers/block/mod.rs.html
index 0e816878..dc0438db 100644
--- a/main/src/os/drivers/block/mod.rs.html
+++ b/main/src/os/drivers/block/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
@@ -37,7 +35,7 @@
 use easy_fs::BlockDevice;
 use lazy_static::*;
 
-lazy_static! {
+lazy_static! {
     pub static ref BLOCK_DEVICE: Arc<dyn BlockDevice> = Arc::new(BlockDeviceImpl::new());
 }
 
diff --git a/main/src/os/drivers/block/virtio_blk.rs.html b/main/src/os/drivers/block/virtio_blk.rs.html
index c1168e13..27fa916c 100644
--- a/main/src/os/drivers/block/virtio_blk.rs.html
+++ b/main/src/os/drivers/block/virtio_blk.rs.html
@@ -1,6 +1,4 @@
-virtio_blk.rs - source
-    
1
+virtio_blk.rs - source
1
 2
 3
 4
diff --git a/main/src/os/drivers/bus/mod.rs.html b/main/src/os/drivers/bus/mod.rs.html
index f45ebd59..ed08c0b8 100644
--- a/main/src/os/drivers/bus/mod.rs.html
+++ b/main/src/os/drivers/bus/mod.rs.html
@@ -1,5 +1,3 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 
pub mod virtio;
 
\ No newline at end of file diff --git a/main/src/os/drivers/bus/virtio.rs.html b/main/src/os/drivers/bus/virtio.rs.html index c54be8f6..f21ddb1d 100644 --- a/main/src/os/drivers/bus/virtio.rs.html +++ b/main/src/os/drivers/bus/virtio.rs.html @@ -1,6 +1,4 @@ -virtio.rs - source -
1
+virtio.rs - source
1
 2
 3
 4
@@ -57,7 +55,7 @@
 use lazy_static::*;
 use virtio_drivers::Hal;
 
-lazy_static! {
+lazy_static! {
     static ref QUEUE_FRAMES: UPIntrFreeCell<Vec<FrameTracker>> =
         unsafe { UPIntrFreeCell::new(Vec::new()) };
 }
diff --git a/main/src/os/drivers/chardev/mod.rs.html b/main/src/os/drivers/chardev/mod.rs.html
index 2d77f601..cc0a9346 100644
--- a/main/src/os/drivers/chardev/mod.rs.html
+++ b/main/src/os/drivers/chardev/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
@@ -31,7 +29,7 @@
     fn handle_irq(&self);
 }
 
-lazy_static! {
+lazy_static! {
     pub static ref UART: Arc<CharDeviceImpl> = Arc::new(CharDeviceImpl::new());
 }
 
\ No newline at end of file diff --git a/main/src/os/drivers/chardev/ns16550a.rs.html b/main/src/os/drivers/chardev/ns16550a.rs.html index 67aa1af5..db271b2a 100644 --- a/main/src/os/drivers/chardev/ns16550a.rs.html +++ b/main/src/os/drivers/chardev/ns16550a.rs.html @@ -1,6 +1,4 @@ -ns16550a.rs - source -
1
+ns16550a.rs - source
1
 2
 3
 4
@@ -196,7 +194,7 @@
 use bitflags::*;
 use volatile::{ReadOnly, Volatile, WriteOnly};
 
-bitflags! {
+bitflags! {
     /// InterruptEnableRegister
     pub struct IER: u8 {
         const RX_AVAILABLE = 1 << 0;
diff --git a/main/src/os/drivers/gpu/mod.rs.html b/main/src/os/drivers/gpu/mod.rs.html
index b491396c..300d514f 100644
--- a/main/src/os/drivers/gpu/mod.rs.html
+++ b/main/src/os/drivers/gpu/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/os/drivers/input/mod.rs.html b/main/src/os/drivers/input/mod.rs.html
index 22b569c7..c0f8c7e5 100644
--- a/main/src/os/drivers/input/mod.rs.html
+++ b/main/src/os/drivers/input/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/os/drivers/mod.rs.html b/main/src/os/drivers/mod.rs.html
index 30c8b182..ea533ce9 100644
--- a/main/src/os/drivers/mod.rs.html
+++ b/main/src/os/drivers/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/os/drivers/net/mod.rs.html b/main/src/os/drivers/net/mod.rs.html
index 51587311..242bfbda 100644
--- a/main/src/os/drivers/net/mod.rs.html
+++ b/main/src/os/drivers/net/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
@@ -56,7 +54,7 @@
 
 const VIRTIO8: usize = 0x10004000;
 
-lazy_static! {
+lazy_static! {
     pub static ref NET_DEVICE: Arc<dyn NetDevice> = Arc::new(VirtIONetWrapper::new());
 }
 
diff --git a/main/src/os/drivers/plic.rs.html b/main/src/os/drivers/plic.rs.html
index a922b375..8f104b9b 100644
--- a/main/src/os/drivers/plic.rs.html
+++ b/main/src/os/drivers/plic.rs.html
@@ -1,6 +1,4 @@
-plic.rs - source
-    
1
+plic.rs - source
1
 2
 3
 4
diff --git a/main/src/os/fs/inode.rs.html b/main/src/os/fs/inode.rs.html
index 2320a531..4856f0e4 100644
--- a/main/src/os/fs/inode.rs.html
+++ b/main/src/os/fs/inode.rs.html
@@ -1,6 +1,4 @@
-inode.rs - source
-    
1
+inode.rs - source
1
 2
 3
 4
@@ -184,7 +182,7 @@
     }
 }
 
-lazy_static! {
+lazy_static! {
     pub static ref ROOT_INODE: Arc<Inode> = {
         let efs = EasyFileSystem::open(BLOCK_DEVICE.clone());
         Arc::new(EasyFileSystem::root_inode(&efs))
@@ -199,7 +197,7 @@
     println!("**************/")
 }
 
-bitflags! {
+bitflags! {
     pub struct OpenFlags: u32 {
         const RDONLY = 0;
         const WRONLY = 1 << 0;
diff --git a/main/src/os/fs/mod.rs.html b/main/src/os/fs/mod.rs.html
index f9116144..530d0740 100644
--- a/main/src/os/fs/mod.rs.html
+++ b/main/src/os/fs/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/os/fs/pipe.rs.html b/main/src/os/fs/pipe.rs.html
index 22febadc..eb6cebd0 100644
--- a/main/src/os/fs/pipe.rs.html
+++ b/main/src/os/fs/pipe.rs.html
@@ -1,6 +1,4 @@
-pipe.rs - source
-    
1
+pipe.rs - source
1
 2
 3
 4
diff --git a/main/src/os/fs/stdio.rs.html b/main/src/os/fs/stdio.rs.html
index f36ed13f..ad745686 100644
--- a/main/src/os/fs/stdio.rs.html
+++ b/main/src/os/fs/stdio.rs.html
@@ -1,6 +1,4 @@
-stdio.rs - source
-    
1
+stdio.rs - source
1
 2
 3
 4
diff --git a/main/src/os/lang_items.rs.html b/main/src/os/lang_items.rs.html
index f75d72ac..e962af9d 100644
--- a/main/src/os/lang_items.rs.html
+++ b/main/src/os/lang_items.rs.html
@@ -1,6 +1,4 @@
-lang_items.rs - source
-    
1
+lang_items.rs - source
1
 2
 3
 4
diff --git a/main/src/os/main.rs.html b/main/src/os/main.rs.html
index 56061b14..4009fd65 100644
--- a/main/src/os/main.rs.html
+++ b/main/src/os/main.rs.html
@@ -1,6 +1,4 @@
-main.rs - source
-    
1
+main.rs - source
1
 2
 3
 4
@@ -125,7 +123,7 @@
 use lazy_static::*;
 use sync::UPIntrFreeCell;
 
-lazy_static! {
+lazy_static! {
     pub static ref DEV_NON_BLOCKING_ACCESS: UPIntrFreeCell<bool> =
         unsafe { UPIntrFreeCell::new(false) };
 }
diff --git a/main/src/os/mm/address.rs.html b/main/src/os/mm/address.rs.html
index 40c77a46..2b090ee8 100644
--- a/main/src/os/mm/address.rs.html
+++ b/main/src/os/mm/address.rs.html
@@ -1,6 +1,4 @@
-address.rs - source
-    
1
+address.rs - source
1
 2
 3
 4
diff --git a/main/src/os/mm/frame_allocator.rs.html b/main/src/os/mm/frame_allocator.rs.html
index 6b47f1c5..bf4d522b 100644
--- a/main/src/os/mm/frame_allocator.rs.html
+++ b/main/src/os/mm/frame_allocator.rs.html
@@ -1,6 +1,4 @@
-frame_allocator.rs - source
-    
1
+frame_allocator.rs - source
1
 2
 3
 4
@@ -257,7 +255,7 @@
 
 type FrameAllocatorImpl = StackFrameAllocator;
 
-lazy_static! {
+lazy_static! {
     pub static ref FRAME_ALLOCATOR: UPIntrFreeCell<FrameAllocatorImpl> =
         unsafe { UPIntrFreeCell::new(FrameAllocatorImpl::new()) };
 }
diff --git a/main/src/os/mm/heap_allocator.rs.html b/main/src/os/mm/heap_allocator.rs.html
index 446dac79..0791abca 100644
--- a/main/src/os/mm/heap_allocator.rs.html
+++ b/main/src/os/mm/heap_allocator.rs.html
@@ -1,6 +1,4 @@
-heap_allocator.rs - source
-    
1
+heap_allocator.rs - source
1
 2
 3
 4
diff --git a/main/src/os/mm/memory_set.rs.html b/main/src/os/mm/memory_set.rs.html
index c35c0f97..6e5a8355 100644
--- a/main/src/os/mm/memory_set.rs.html
+++ b/main/src/os/mm/memory_set.rs.html
@@ -1,6 +1,4 @@
-memory_set.rs - source
-    
1
+memory_set.rs - source
1
 2
 3
 4
@@ -406,7 +404,7 @@
     fn strampoline();
 }
 
-lazy_static! {
+lazy_static! {
     pub static ref KERNEL_SPACE: Arc<UPIntrFreeCell<MemorySet>> =
         Arc::new(unsafe { UPIntrFreeCell::new(MemorySet::new_kernel()) });
 }
@@ -728,7 +726,7 @@
     Linear(isize),
 }
 
-bitflags! {
+bitflags! {
     pub struct MapPermission: u8 {
         const R = 1 << 1;
         const W = 1 << 2;
diff --git a/main/src/os/mm/mod.rs.html b/main/src/os/mm/mod.rs.html
index b0e5a65a..28798c30 100644
--- a/main/src/os/mm/mod.rs.html
+++ b/main/src/os/mm/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/os/mm/page_table.rs.html b/main/src/os/mm/page_table.rs.html
index 974e5a30..d7b7321f 100644
--- a/main/src/os/mm/page_table.rs.html
+++ b/main/src/os/mm/page_table.rs.html
@@ -1,6 +1,4 @@
-page_table.rs - source
-    
1
+page_table.rs - source
1
 2
 3
 4
@@ -255,7 +253,7 @@
 use alloc::vec::Vec;
 use bitflags::*;
 
-bitflags! {
+bitflags! {
     pub struct PTEFlags: u8 {
         const V = 1 << 0;
         const R = 1 << 1;
diff --git a/main/src/os/net/mod.rs.html b/main/src/os/net/mod.rs.html
index f17fefe7..d71debd0 100644
--- a/main/src/os/net/mod.rs.html
+++ b/main/src/os/net/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
@@ -167,7 +165,7 @@
     }
 }
 
-lazy_static::lazy_static! {
+lazy_static::lazy_static! {
     static ref LOSE_NET_STACK: Arc<NetStack> = Arc::new(NetStack::new());
 }
 
diff --git a/main/src/os/net/port_table.rs.html b/main/src/os/net/port_table.rs.html
index d893eba9..6f35592c 100644
--- a/main/src/os/net/port_table.rs.html
+++ b/main/src/os/net/port_table.rs.html
@@ -1,6 +1,4 @@
-port_table.rs - source
-    
1
+port_table.rs - source
1
 2
 3
 4
@@ -157,7 +155,7 @@
     pub schedule: Option<Arc<TaskControlBlock>>,
 }
 
-lazy_static! {
+lazy_static! {
     static ref LISTEN_TABLE: UPIntrFreeCell<Vec<Option<Port>>> =
         unsafe { UPIntrFreeCell::new(Vec::new()) };
 }
diff --git a/main/src/os/net/socket.rs.html b/main/src/os/net/socket.rs.html
index 7bc1cf64..30fbc8f8 100644
--- a/main/src/os/net/socket.rs.html
+++ b/main/src/os/net/socket.rs.html
@@ -1,6 +1,4 @@
-socket.rs - source
-    
1
+socket.rs - source
1
 2
 3
 4
@@ -140,7 +138,7 @@
     pub ack: u32,
 }
 
-lazy_static! {
+lazy_static! {
     static ref SOCKET_TABLE: UPIntrFreeCell<Vec<Option<Socket>>> =
         unsafe { UPIntrFreeCell::new(Vec::new()) };
 }
diff --git a/main/src/os/net/tcp.rs.html b/main/src/os/net/tcp.rs.html
index 2d4db83d..e2b98c7c 100644
--- a/main/src/os/net/tcp.rs.html
+++ b/main/src/os/net/tcp.rs.html
@@ -1,6 +1,4 @@
-tcp.rs - source
-    
1
+tcp.rs - source
1
 2
 3
 4
diff --git a/main/src/os/net/udp.rs.html b/main/src/os/net/udp.rs.html
index 39d9ede3..fe4f9cd3 100644
--- a/main/src/os/net/udp.rs.html
+++ b/main/src/os/net/udp.rs.html
@@ -1,6 +1,4 @@
-udp.rs - source
-    
1
+udp.rs - source
1
 2
 3
 4
diff --git a/main/src/os/sbi.rs.html b/main/src/os/sbi.rs.html
index 3ad74dcf..ae9c9ecd 100644
--- a/main/src/os/sbi.rs.html
+++ b/main/src/os/sbi.rs.html
@@ -1,6 +1,4 @@
-sbi.rs - source
-    
1
+sbi.rs - source
1
 2
 3
 4
diff --git a/main/src/os/sync/condvar.rs.html b/main/src/os/sync/condvar.rs.html
index 3a631ba4..e9efb9b3 100644
--- a/main/src/os/sync/condvar.rs.html
+++ b/main/src/os/sync/condvar.rs.html
@@ -1,6 +1,4 @@
-condvar.rs - source
-    
1
+condvar.rs - source
1
 2
 3
 4
diff --git a/main/src/os/sync/mod.rs.html b/main/src/os/sync/mod.rs.html
index c47a92a8..45b1cf68 100644
--- a/main/src/os/sync/mod.rs.html
+++ b/main/src/os/sync/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/os/sync/mutex.rs.html b/main/src/os/sync/mutex.rs.html
index ea19e3f7..65dbe211 100644
--- a/main/src/os/sync/mutex.rs.html
+++ b/main/src/os/sync/mutex.rs.html
@@ -1,6 +1,4 @@
-mutex.rs - source
-    
1
+mutex.rs - source
1
 2
 3
 4
diff --git a/main/src/os/sync/semaphore.rs.html b/main/src/os/sync/semaphore.rs.html
index fabf0291..ee631043 100644
--- a/main/src/os/sync/semaphore.rs.html
+++ b/main/src/os/sync/semaphore.rs.html
@@ -1,6 +1,4 @@
-semaphore.rs - source
-    
1
+semaphore.rs - source
1
 2
 3
 4
diff --git a/main/src/os/sync/up.rs.html b/main/src/os/sync/up.rs.html
index cb462f18..8dcd07d7 100644
--- a/main/src/os/sync/up.rs.html
+++ b/main/src/os/sync/up.rs.html
@@ -1,6 +1,4 @@
-up.rs - source
-    
1
+up.rs - source
1
 2
 3
 4
@@ -197,7 +195,7 @@ impl<T> UPSafeCell<T> {
     sie_before_masking: bool,
 }
 
-lazy_static! {
+lazy_static! {
     static ref INTR_MASKING_INFO: UPSafeCellRaw<IntrMaskingInfo> =
         unsafe { UPSafeCellRaw::new(IntrMaskingInfo::new()) };
 }
diff --git a/main/src/os/syscall/fs.rs.html b/main/src/os/syscall/fs.rs.html
index 1363cc04..ce28f49b 100644
--- a/main/src/os/syscall/fs.rs.html
+++ b/main/src/os/syscall/fs.rs.html
@@ -1,6 +1,4 @@
-fs.rs - source
-    
1
+fs.rs - source
1
 2
 3
 4
diff --git a/main/src/os/syscall/gui.rs.html b/main/src/os/syscall/gui.rs.html
index 2624617d..70da743c 100644
--- a/main/src/os/syscall/gui.rs.html
+++ b/main/src/os/syscall/gui.rs.html
@@ -1,6 +1,4 @@
-gui.rs - source
-    
1
+gui.rs - source
1
 2
 3
 4
diff --git a/main/src/os/syscall/input.rs.html b/main/src/os/syscall/input.rs.html
index 6510657a..6716584c 100644
--- a/main/src/os/syscall/input.rs.html
+++ b/main/src/os/syscall/input.rs.html
@@ -1,6 +1,4 @@
-input.rs - source
-    
1
+input.rs - source
1
 2
 3
 4
diff --git a/main/src/os/syscall/mod.rs.html b/main/src/os/syscall/mod.rs.html
index fc690d02..d2ac2663 100644
--- a/main/src/os/syscall/mod.rs.html
+++ b/main/src/os/syscall/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/os/syscall/net.rs.html b/main/src/os/syscall/net.rs.html
index 1e126a40..92913e97 100644
--- a/main/src/os/syscall/net.rs.html
+++ b/main/src/os/syscall/net.rs.html
@@ -1,6 +1,4 @@
-net.rs - source
-    
1
+net.rs - source
1
 2
 3
 4
diff --git a/main/src/os/syscall/process.rs.html b/main/src/os/syscall/process.rs.html
index d7553a4a..e1d81d06 100644
--- a/main/src/os/syscall/process.rs.html
+++ b/main/src/os/syscall/process.rs.html
@@ -1,6 +1,4 @@
-process.rs - source
-    
1
+process.rs - source
1
 2
 3
 4
diff --git a/main/src/os/syscall/sync.rs.html b/main/src/os/syscall/sync.rs.html
index a76f273c..32f949e1 100644
--- a/main/src/os/syscall/sync.rs.html
+++ b/main/src/os/syscall/sync.rs.html
@@ -1,6 +1,4 @@
-sync.rs - source
-    
1
+sync.rs - source
1
 2
 3
 4
diff --git a/main/src/os/syscall/thread.rs.html b/main/src/os/syscall/thread.rs.html
index 7aa2d38e..213839b6 100644
--- a/main/src/os/syscall/thread.rs.html
+++ b/main/src/os/syscall/thread.rs.html
@@ -1,6 +1,4 @@
-thread.rs - source
-    
1
+thread.rs - source
1
 2
 3
 4
diff --git a/main/src/os/task/context.rs.html b/main/src/os/task/context.rs.html
index 0dbd35bc..e7835728 100644
--- a/main/src/os/task/context.rs.html
+++ b/main/src/os/task/context.rs.html
@@ -1,6 +1,4 @@
-context.rs - source
-    
1
+context.rs - source
1
 2
 3
 4
diff --git a/main/src/os/task/id.rs.html b/main/src/os/task/id.rs.html
index 5713be29..39afb2e2 100644
--- a/main/src/os/task/id.rs.html
+++ b/main/src/os/task/id.rs.html
@@ -1,6 +1,4 @@
-id.rs - source
-    
1
+id.rs - source
1
 2
 3
 4
@@ -267,7 +265,7 @@
     }
 }
 
-lazy_static! {
+lazy_static! {
     static ref PID_ALLOCATOR: UPIntrFreeCell<RecycleAllocator> =
         unsafe { UPIntrFreeCell::new(RecycleAllocator::new()) };
     static ref KSTACK_ALLOCATOR: UPIntrFreeCell<RecycleAllocator> =
diff --git a/main/src/os/task/manager.rs.html b/main/src/os/task/manager.rs.html
index 833aa878..429749f5 100644
--- a/main/src/os/task/manager.rs.html
+++ b/main/src/os/task/manager.rs.html
@@ -1,6 +1,4 @@
-manager.rs - source
-    
1
+manager.rs - source
1
 2
 3
 4
@@ -87,7 +85,7 @@
     }
 }
 
-lazy_static! {
+lazy_static! {
     pub static ref TASK_MANAGER: UPIntrFreeCell<TaskManager> =
         unsafe { UPIntrFreeCell::new(TaskManager::new()) };
     pub static ref PID2PCB: UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>> =
diff --git a/main/src/os/task/mod.rs.html b/main/src/os/task/mod.rs.html
index e1e824b5..4759d617 100644
--- a/main/src/os/task/mod.rs.html
+++ b/main/src/os/task/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
@@ -309,7 +307,7 @@
     schedule(&mut _unused as *mut _);
 }
 
-lazy_static! {
+lazy_static! {
     pub static ref INITPROC: Arc<ProcessControlBlock> = {
         let inode = open_file("initproc", OpenFlags::RDONLY).unwrap();
         let v = inode.read_all();
diff --git a/main/src/os/task/process.rs.html b/main/src/os/task/process.rs.html
index f5b24bad..0ff434f2 100644
--- a/main/src/os/task/process.rs.html
+++ b/main/src/os/task/process.rs.html
@@ -1,6 +1,4 @@
-process.rs - source
-    
1
+process.rs - source
1
 2
 3
 4
diff --git a/main/src/os/task/processor.rs.html b/main/src/os/task/processor.rs.html
index eef6fe7f..ad2bba90 100644
--- a/main/src/os/task/processor.rs.html
+++ b/main/src/os/task/processor.rs.html
@@ -1,6 +1,4 @@
-processor.rs - source
-    
1
+processor.rs - source
1
 2
 3
 4
@@ -143,7 +141,7 @@
     }
 }
 
-lazy_static! {
+lazy_static! {
     pub static ref PROCESSOR: UPIntrFreeCell<Processor> =
         unsafe { UPIntrFreeCell::new(Processor::new()) };
 }
diff --git a/main/src/os/task/signal.rs.html b/main/src/os/task/signal.rs.html
index 2546704f..153478e1 100644
--- a/main/src/os/task/signal.rs.html
+++ b/main/src/os/task/signal.rs.html
@@ -1,6 +1,4 @@
-signal.rs - source
-    
1
+signal.rs - source
1
 2
 3
 4
@@ -31,7 +29,7 @@
 29
 
use bitflags::*;
 
-bitflags! {
+bitflags! {
     pub struct SignalFlags: u32 {
         const SIGINT    = 1 << 2;
         const SIGILL    = 1 << 4;
diff --git a/main/src/os/task/switch.rs.html b/main/src/os/task/switch.rs.html
index e969f6b7..5cfc161a 100644
--- a/main/src/os/task/switch.rs.html
+++ b/main/src/os/task/switch.rs.html
@@ -1,6 +1,4 @@
-switch.rs - source
-    
1
+switch.rs - source
1
 2
 3
 4
diff --git a/main/src/os/task/task.rs.html b/main/src/os/task/task.rs.html
index c4f8c754..474d94c3 100644
--- a/main/src/os/task/task.rs.html
+++ b/main/src/os/task/task.rs.html
@@ -1,6 +1,4 @@
-task.rs - source
-    
1
+task.rs - source
1
 2
 3
 4
diff --git a/main/src/os/timer.rs.html b/main/src/os/timer.rs.html
index becfd01e..12d32885 100644
--- a/main/src/os/timer.rs.html
+++ b/main/src/os/timer.rs.html
@@ -1,6 +1,4 @@
-timer.rs - source
-    
1
+timer.rs - source
1
 2
 3
 4
@@ -125,7 +123,7 @@
     }
 }
 
-lazy_static! {
+lazy_static! {
     static ref TIMERS: UPIntrFreeCell<BinaryHeap<TimerCondVar>> =
         unsafe { UPIntrFreeCell::new(BinaryHeap::<TimerCondVar>::new()) };
 }
diff --git a/main/src/os/trap/context.rs.html b/main/src/os/trap/context.rs.html
index 50411913..66740f0e 100644
--- a/main/src/os/trap/context.rs.html
+++ b/main/src/os/trap/context.rs.html
@@ -1,6 +1,4 @@
-context.rs - source
-    
1
+context.rs - source
1
 2
 3
 4
diff --git a/main/src/os/trap/mod.rs.html b/main/src/os/trap/mod.rs.html
index 5b268fe0..a1c56dd1 100644
--- a/main/src/os/trap/mod.rs.html
+++ b/main/src/os/trap/mod.rs.html
@@ -1,6 +1,4 @@
-mod.rs - source
-    
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/static.files/clipboard-7571035ce49a181d.svg b/main/static.files/clipboard-7571035ce49a181d.svg
deleted file mode 100644
index 8adbd996..00000000
--- a/main/static.files/clipboard-7571035ce49a181d.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/main/static.files/favicon-16x16-8b506e7a72182f1c.png b/main/static.files/favicon-16x16-8b506e7a72182f1c.png
deleted file mode 100644
index ea4b45ca..00000000
Binary files a/main/static.files/favicon-16x16-8b506e7a72182f1c.png and /dev/null differ
diff --git a/main/static.files/main-0b2e2def73e61cbe.js b/main/static.files/main-0b2e2def73e61cbe.js
deleted file mode 100644
index a195dccb..00000000
--- a/main/static.files/main-0b2e2def73e61cbe.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ -the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ - restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ - enum, trait, type, macro, \ - and const.","Search functions by type signature (e.g., vec -> usize or \ - -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for functions that accept or return \ - slices and \ - arrays by writing \ - square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px")},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/main/static.files/main-20a3ad099b048cf2.js b/main/static.files/main-20a3ad099b048cf2.js new file mode 100644 index 00000000..133116e4 --- /dev/null +++ b/main/static.files/main-20a3ad099b048cf2.js @@ -0,0 +1,11 @@ +"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerHTML=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject)})}const list=await descShard.promise;return list[descIndex]},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"))},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}},)}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":case"/":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","),);for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px",)}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S / /","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ + restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ + enum, trait, type, macro, \ + and const.","Search functions by type signature (e.g., vec -> usize or \ + -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"","Look for functions that accept or return \ + slices and \ + arrays by writing \ + square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px",)},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}window.hideAllModals(false);e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.classList.add("clicked");if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){reset_button_timeout=null;but.classList.remove("clicked")}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/main/static.files/noscript-04d5337699b92874.css b/main/static.files/noscript-04d5337699b92874.css deleted file mode 100644 index fbd55f57..00000000 --- a/main/static.files/noscript-04d5337699b92874.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/main/static.files/noscript-09095024cf37855e.css b/main/static.files/noscript-09095024cf37855e.css new file mode 100644 index 00000000..59786941 --- /dev/null +++ b/main/static.files/noscript-09095024cf37855e.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root,:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root,:root:not([data-theme]){--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/main/static.files/rustdoc-4e54bb2b497cc83f.css b/main/static.files/rustdoc-b21aa549bf6d91ff.css similarity index 56% rename from main/static.files/rustdoc-4e54bb2b497cc83f.css rename to main/static.files/rustdoc-b21aa549bf6d91ff.css index ce5efae4..b0c4e1b6 100644 --- a/main/static.files/rustdoc-4e54bb2b497cc83f.css +++ b/main/static.files/rustdoc-b21aa549bf6d91ff.css @@ -1,13 +1,35 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;margin-right:0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.5rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.5rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;margin-top:calc((-16px + 0.57rem ) / 2 );}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml,h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;margin-right:0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.2rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:5px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ \ - ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#sidebar-button>a:before{content:url('data:image/svg+xml,');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#settings-menu>a{line-height:0;font-size:0;}#settings-menu>a:before{content:url('data:image/svg+xml,\ + ');width:22px;height:22px;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ \ \ - ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;width:33px;margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:url('data:image/svg+xml,\ +\ +\ +');width:19px;height:18px;}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:url('data:image/svg+xml,\ + \ + ');}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details viewBox="0 0 22 22" fill="none" stroke="black">\ \ \ - ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ \ \ - ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"]{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file + ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/main/static.files/search-bf21c90c8c1d92b1.js b/main/static.files/search-bf21c90c8c1d92b1.js new file mode 100644 index 00000000..81d04e0e --- /dev/null +++ b/main/static.files/search-bf21c90c8c1d92b1.js @@ -0,0 +1,5 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const TY_IMPORT=itemTypes.indexOf("import");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";const UNBOXING_LIMIT=5;function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost,);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1,)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let searchIndexDeprecated;let searchIndexEmptyDesc;let functionTypeFingerprint;let currentResults;const typeNameIdMap=new Map();const ALIASES=new Map();const typeNameIdOfArray=buildTypeMapIndex("array");const typeNameIdOfSlice=buildTypeMapIndex("slice");const typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");const typeNameIdOfTuple=buildTypeMapIndex("tuple");const typeNameIdOfUnit=buildTypeMapIndex("unit");const typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");const typeNameIdOfFn=buildTypeMapIndex("fn");const typeNameIdOfFnMut=buildTypeMapIndex("fnmut");const typeNameIdOfFnOnce=buildTypeMapIndex("fnonce");const typeNameIdOfHof=buildTypeMapIndex("->");function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return makePrimitiveElement("never",{bindingName})}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){if(gen.name!==null){gen.bindingName.generics.unshift(gen)}bindings.set(gen.bindingName.name,gen.bindingName.generics);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}else{throw["Unexpected ",c]}}parserState.pos+=1;end=parserState.pos}if(foundExclamation!==-1&&foundExclamation!==start&&isIdentCharacter(parserState.userQuery[foundExclamation-1])){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=foundExclamation}return end}function getFilteredNextElem(query,parserState,elems,isInGenerics){const start=parserState.pos;if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){throw["Expected type filter before ",":"]}getNextElem(query,parserState,elems,isInGenerics);if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}if(elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;getNextElem(query,parserState,elems,isInGenerics)}}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const bindingName=parserState.isInBinding;parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else if(name==="()"&&generics.length===1&&generics[0].name==="->"){generics[0].typeFilter=typeFilter;elems.push(generics[0])}else{if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push(makePrimitiveElement(name,{bindingName,generics}))}}else{const isStringElem=parserState.userQuery[start]==="\"";if(isStringElem){start+=1;getStringElem(query,parserState,isInGenerics);end=parserState.pos-1}else{end=getIdentEndPosition(parserState)}if(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}else if(parserState.pos=end){throw["Found generics without a path"]}if(parserState.isInBinding){throw["Unexpected ","("," after ","="]}parserState.pos+=1;const typeFilter=parserState.typeFilter;parserState.typeFilter=null;getItemsBefore(query,parserState,generics,")");skipWhitespace(parserState);if(isReturnArrow(parserState)){parserState.pos+=2;skipWhitespace(parserState);getFilteredNextElem(query,parserState,generics,isInGenerics);generics[generics.length-1].bindingName=makePrimitiveElement("output")}else{generics.push(makePrimitiveElement(null,{bindingName:makePrimitiveElement("output"),typeFilter:null,}))}parserState.typeFilter=typeFilter}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics,),)}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let hofParameters=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"," after ","="]}hofParameters=[...elems];elems.length=0;parserState.pos+=2;foundStopChar=true;foundSeparator=false;continue}else if(c===" "){parserState.pos+=1;continue}else if(isSeparatorCharacter(c)){parserState.pos+=1;foundStopChar=true;foundSeparator=true;continue}else if(c===":"&&isPathStart(parserState)){throw["Unexpected ","::",": paths cannot start with ","::"]}else if(isEndCharacter(c)){throw["Unexpected ",c," after ",extra]}if(!foundStopChar){let extra=[];if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;getFilteredNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;if(hofParameters){foundSeparator=false;if([...elems,...hofParameters].some(x=>x.bindingName)||parserState.isInBinding){throw["Unexpected ","="," within ","->"]}const hofElem=makePrimitiveElement("->",{generics:hofParameters,bindings:new Map([["output",[...elems]]]),typeFilter:null,});elems.length=0;elems[0]=hofElem}parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;getFilteredNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}async function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=res[2]+"|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}if(obj.ty===TY_IMPORT&&duplicates.has(res[2])){continue}if(duplicates.has(res[2]+"|"+TY_IMPORT)){continue}duplicates.add(obj.fullPath);duplicates.add(res[2]);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}async function sortResults(results,isType,preferredCrate){const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=searchIndexDeprecated.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexDeprecated.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=searchIndexEmptyDesc.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexEmptyDesc.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth+1,)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth,);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth,);if(passesUnification){return true}}return false},unboxingDepth,);if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(queryElem.id===typeNameIdOfHof&&(fnType.id===typeNameIdOfFn||fnType.id===typeNameIdOfFnMut||fnType.id===typeNameIdOfFnOnce)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false},unboxingDepth,);return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp,unboxingDepth,)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens,unboxingDepth,)}return false}function checkIfInList(list,elem,whereClause,mgens,unboxingDepth){for(const entry of list){if(checkType(entry,elem,whereClause,mgens,unboxingDepth)){return true}}return false}function checkType(row,elem,whereClause,mgens,unboxingDepth){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0&&mgens===null){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth+1,)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit&&elem.id!==typeNameIdOfHof){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth,)}}return unifyFunctionTypes([row],[elem],whereClause,mgens,null,unboxingDepth)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3,);let ret_dist=maxPathEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,descShard:item.descShard,descIndex:item.descIndex,exactPath:item.exactPath,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,bitIndex:item.bitIndex,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance,){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint,);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause,null,0);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause,null,0);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint,);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens,null,0,)},0,)){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}),)}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i{const descs=await Promise.all(list.map(result=>{return searchIndexEmptyDesc.get(result.crate).contains(result.bitIndex)?"":searchState.loadDesc(result)}));for(const[i,result]of list.entries()){result.desc=descs[i]}}));if(parsedQuery.error!==null&&ret.others.length!==0){ret.query.error=null}return ret}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;let exactPath=item.exactPath;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor=type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;exactPath=`${myparent.exactPath}::${myparent.name}`;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}if(item.implDisambiguator!==null){anchor=item.implDisambiguator+"/"+anchor}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html#"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href,`${exactPath}::${name}`]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}async function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;for(const item of array){const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ +${item.alias} - see \ +
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ +${item.displayPath}${name}\ +
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)}}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}async function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,true),addTab(results.in_args,results.query,false),addTab(results.returned,results.query,false),]);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}async function search(forced){const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));await showResults(await execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths,);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,exactPath:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,exactPath:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,exactPath:item.exactPath,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchTypeCallback(lowercasePaths){return functionSearchType=>{if(functionSearchType===0){return null}const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths,)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths,)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}class VlqHexDecoder{constructor(string,cons){this.string=string;this.cons=cons;this.offset=0;this.backrefQueue=[]}decodeList(){const cb="}".charCodeAt(0);let c=this.string.charCodeAt(this.offset);const ret=[];while(c!==cb){ret.push(this.decode());c=this.string.charCodeAt(this.offset)}this.offset+=1;return ret}decode(){const[ob,la]=["{","`"].map(c=>c.charCodeAt(0));let n=0;let c=this.string.charCodeAt(this.offset);if(c===ob){this.offset+=1;return this.decodeList()}while(c>1];this.offset+=1;return sign?-value:value}next(){const c=this.string.charCodeAt(this.offset);const[zero,ua,la]=["0","@","`"].map(c=>c.charCodeAt(0));if(c>=zero&&c16){this.backrefQueue.pop()}return result}}class RoaringBitmap{constructor(str){const strdecoded=atob(str);const u8array=new Uint8Array(strdecoded.length);for(let j=0;j=4){offsets=[];for(let j=0;j>3]&(1<<(j&0x7))){const runcount=(u8array[i]|(u8array[i+1]<<8));i+=2;this.containers.push(new RoaringBitmapRun(runcount,u8array.slice(i,i+(runcount*4)),));i+=runcount*4}else if(this.cardinalities[j]>=4096){this.containers.push(new RoaringBitmapBits(u8array.slice(i,i+8192)));i+=8192}else{const end=this.cardinalities[j]*2;this.containers.push(new RoaringBitmapArray(this.cardinalities[j],u8array.slice(i,i+end),));i+=end}}}contains(keyvalue){const key=keyvalue>>16;const value=keyvalue&0xFFFF;for(let i=0;i=start&&value<=(start+lenm1)){return true}}return false}}class RoaringBitmapArray{constructor(cardinality,array){this.cardinality=cardinality;this.array=array}contains(value){const l=this.cardinality*2;for(let i=0;i>3]&(1<<(value&7)))}}function buildIndex(rawSearchIndex){searchIndex=[];searchIndexDeprecated=new Map();searchIndexEmptyDesc=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const itemDescShardDecoder=new VlqHexDecoder(crateCorpus.D,noop=>noop);let descShard={crate,shard:0,start:0,len:itemDescShardDecoder.next(),promise:null,resolve:null,};const descShardList=[descShard];searchIndexDeprecated.set(crate,new RoaringBitmap(crateCorpus.c));searchIndexEmptyDesc.set(crate,new RoaringBitmap(crateCorpus.e));let descIndex=0;const crateRow={crate,ty:3,name:crate,path:"",descShard,descIndex,exactPath:"",desc:crateCorpus.doc,parent:undefined,type:null,id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),bitIndex:0,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;if(!searchIndexEmptyDesc.get(crate).contains(0)){descIndex+=1}const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemReexports=new Map(crateCorpus.r);const itemParentIdxs=crateCorpus.i;const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];const itemFunctionDecoder=new VlqHexDecoder(crateCorpus.f,buildFunctionSearchTypeCallback(lowercasePaths),);let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}const exactPath=elem.length>3?itemPaths.get(elem[3]):path;lowercasePaths.push({ty,name:name.toLowerCase(),path,exactPath});paths[i]={ty,name,path,exactPath}}lastPath="";len=itemTypes.length;for(let i=0;i=descShard.len&&!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descShard={crate,shard:descShard.shard+1,start:descShard.start+descShard.len,len:itemDescShardDecoder.next(),promise:null,resolve:null,};descIndex=0;descShardList.push(descShard)}let word="";if(typeof itemNames[i]==="string"){word=itemNames[i].toLowerCase()}const path=itemPaths.has(i)?itemPaths.get(i):lastPath;const type=itemFunctionDecoder.next();if(type!==null){if(type){const fp=functionTypeFingerprint.subarray(id*4,(id+1)*4);const fps=new Set();for(const t of type.inputs){buildFunctionTypeFingerprint(t,fp,fps)}for(const t of type.output){buildFunctionTypeFingerprint(t,fp,fps)}for(const w of type.where_clause){for(const t of w){buildFunctionTypeFingerprint(t,fp,fps)}}}}const row={crate,ty:itemTypes.charCodeAt(i)-charA,name:itemNames[i],path,descShard,descIndex,exactPath:itemReexports.has(i)?itemPaths.get(itemReexports.get(i)):path,parent:itemParentIdxs[i]>0?paths[itemParentIdxs[i]-1]:undefined,type,id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),bitIndex,implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;if(!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descIndex+=1}}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length;searchState.descShards.set(crate,descShardList)}TYPES_POOL=new Map()}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/main/static.files/search-dd67cee4cfa65049.js b/main/static.files/search-dd67cee4cfa65049.js deleted file mode 100644 index ef8bf865..00000000 --- a/main/static.files/search-dd67cee4cfa65049.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let functionTypeFingerprint;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;let typeNameIdOfTuple;let typeNameIdOfUnit;let typeNameIdOfTupleOrUnit;function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",normalizedPathLast:"never",generics:[],bindings:new Map(),typeFilter:"primitive",bindingName,}}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){bindings.set(gen.bindingName.name,[gen,...gen.bindingName.generics]);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}else{throw["Unexpected ",c]}}parserState.pos+=1;end=parserState.pos}if(foundExclamation!==-1&&foundExclamation!==start&&isIdentCharacter(parserState.userQuery[foundExclamation-1])){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=foundExclamation}return end}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const isInBinding=parserState.isInBinding;if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else{parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push({name:name,id:null,fullPath:[name],pathWithoutLast:[],pathLast:name,normalizedPathLast:name,generics,bindings:new Map(),typeFilter:"primitive",bindingName:isInBinding,})}}else{const isStringElem=parserState.userQuery[start]==="\"";if(isStringElem){start+=1;getStringElem(query,parserState,isInGenerics);end=parserState.pos-1}else{end=getIdentEndPosition(parserState)}if(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb);if(passesUnification){return true}}return false});if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false});return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens){if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens)}return false}function checkIfInList(list,elem,whereClause,mgens){for(const entry of list){if(checkType(entry,elem,whereClause,mgens)){return true}}return false}function checkType(row,elem,whereClause,mgens){if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens)}}return unifyFunctionTypes([row],[elem],whereClause,mgens)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3);let ret_dist=maxPathEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}))}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ -${item.alias} - see \ -
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ -${item.displayPath}${name}\ -
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(forced){const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchType(itemFunctionDecoder,lowercasePaths){const c=itemFunctionDecoder.string.charCodeAt(itemFunctionDecoder.offset);itemFunctionDecoder.offset+=1;const[zero,ua,la,ob,cb]=["0","@","`","{","}"].map(c=>c.charCodeAt(0));if(c===la){return null}if(c>=zero&&c>1];itemFunctionDecoder.offset+=1;return sign?-value:value}const functionSearchType=decodeList();const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i16){itemFunctionDecoder.backrefQueue.pop()}return ret}function buildFunctionTypeFingerprint(type,output,fps){let input=type.id;if(input===typeNameIdOfArray||input===typeNameIdOfSlice){input=typeNameIdOfArrayOrSlice}if(input===typeNameIdOfTuple||input===typeNameIdOfUnit){input=typeNameIdOfTupleOrUnit}const hashint1=k=>{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}function buildIndex(rawSearchIndex){searchIndex=[];typeNameIdMap=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;typeNameIdOfArray=buildTypeMapIndex("array");typeNameIdOfSlice=buildTypeMapIndex("slice");typeNameIdOfTuple=buildTypeMapIndex("tuple");typeNameIdOfUnit=buildTypeMapIndex("unit");typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const crateRow={crate:crate,ty:3,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated:null,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionDecoder={string:crateCorpus.f,offset:0,backrefQueue:[],};const deprecatedItems=new Set(crateCorpus.c);const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type,id:id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length}TYPES_POOL=new Map()}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/main/static.files/storage-e32f0c247825364d.js b/main/static.files/storage-e32f0c247825364d.js new file mode 100644 index 00000000..61ddce23 --- /dev/null +++ b/main/static.files/storage-e32f0c247825364d.js @@ -0,0 +1 @@ +"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func){for(const elem of arr){if(func(elem)){return true}}return false}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){const themeNames=getVar("themes").split(",").filter(t=>t);themeNames.push(...builtinThemes);if(themeNames.indexOf(newThemeName)===-1){return}if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+encodeURIComponent(newThemeName)+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar")}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px",)}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px",)}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0)}}) \ No newline at end of file diff --git a/main/static.files/storage-f2adc0d6ca4d09fb.js b/main/static.files/storage-f2adc0d6ca4d09fb.js deleted file mode 100644 index 17233608..00000000 --- a/main/static.files/storage-f2adc0d6ca4d09fb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func){for(const elem of arr){if(func(elem)){return true}}return false}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+newThemeName+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar")}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px")}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px")}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0)}}) \ No newline at end of file diff --git a/main/static.files/wheel-7b819b6101059cd0.svg b/main/static.files/wheel-7b819b6101059cd0.svg deleted file mode 100644 index 83c07f63..00000000 --- a/main/static.files/wheel-7b819b6101059cd0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/main/trait.impl/core/clone/trait.Clone.js b/main/trait.impl/core/clone/trait.Clone.js index f56928e6..e5356dd9 100644 --- a/main/trait.impl/core/clone/trait.Clone.js +++ b/main/trait.impl/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Clone for IER"],["impl Clone for LSR"],["impl Clone for VirtAddr"],["impl Clone for PTEFlags"],["impl Clone for IntrTargetPriority"],["impl Clone for MCR"],["impl Clone for PhysAddr"],["impl<T> Clone for SimpleRange<T>"],["impl Clone for MapType"],["impl Clone for TaskStatus"],["impl Clone for MapPermission"],["impl Clone for PhysPageNum"],["impl Clone for SignalFlags"],["impl Clone for RingBufferStatus"],["impl Clone for PageTableEntry"],["impl Clone for OpenFlags"],["impl Clone for VirtPageNum"]] +"os":[["impl Clone for IntrTargetPriority"],["impl Clone for RingBufferStatus"],["impl Clone for MapType"],["impl Clone for TaskStatus"],["impl Clone for IER"],["impl Clone for LSR"],["impl Clone for MCR"],["impl Clone for OpenFlags"],["impl Clone for PhysAddr"],["impl Clone for PhysPageNum"],["impl Clone for VirtAddr"],["impl Clone for VirtPageNum"],["impl Clone for MapPermission"],["impl Clone for PTEFlags"],["impl Clone for PageTableEntry"],["impl Clone for SignalFlags"],["impl<T> Clone for SimpleRange<T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/cmp/trait.Eq.js b/main/trait.impl/core/cmp/trait.Eq.js index d9540fb1..994ba457 100644 --- a/main/trait.impl/core/cmp/trait.Eq.js +++ b/main/trait.impl/core/cmp/trait.Eq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Eq for PhysPageNum"],["impl Eq for MapPermission"],["impl Eq for IER"],["impl Eq for OpenFlags"],["impl Eq for LSR"],["impl Eq for MCR"],["impl Eq for VirtAddr"],["impl Eq for TimerCondVar"],["impl Eq for PTEFlags"],["impl Eq for PhysAddr"],["impl Eq for VirtPageNum"],["impl Eq for SignalFlags"]] +"os":[["impl Eq for IER"],["impl Eq for LSR"],["impl Eq for MCR"],["impl Eq for OpenFlags"],["impl Eq for PhysAddr"],["impl Eq for PhysPageNum"],["impl Eq for VirtAddr"],["impl Eq for VirtPageNum"],["impl Eq for MapPermission"],["impl Eq for PTEFlags"],["impl Eq for SignalFlags"],["impl Eq for TimerCondVar"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/cmp/trait.Ord.js b/main/trait.impl/core/cmp/trait.Ord.js index 70756af4..72eeba4d 100644 --- a/main/trait.impl/core/cmp/trait.Ord.js +++ b/main/trait.impl/core/cmp/trait.Ord.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Ord for PhysAddr"],["impl Ord for SignalFlags"],["impl Ord for PhysPageNum"],["impl Ord for TimerCondVar"],["impl Ord for VirtAddr"],["impl Ord for MapPermission"],["impl Ord for LSR"],["impl Ord for IER"],["impl Ord for VirtPageNum"],["impl Ord for PTEFlags"],["impl Ord for MCR"],["impl Ord for OpenFlags"]] +"os":[["impl Ord for IER"],["impl Ord for LSR"],["impl Ord for MCR"],["impl Ord for OpenFlags"],["impl Ord for PhysAddr"],["impl Ord for PhysPageNum"],["impl Ord for VirtAddr"],["impl Ord for VirtPageNum"],["impl Ord for MapPermission"],["impl Ord for PTEFlags"],["impl Ord for SignalFlags"],["impl Ord for TimerCondVar"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/cmp/trait.PartialEq.js b/main/trait.impl/core/cmp/trait.PartialEq.js index a5e0680b..1c202cd0 100644 --- a/main/trait.impl/core/cmp/trait.PartialEq.js +++ b/main/trait.impl/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl PartialEq for PhysPageNum"],["impl PartialEq for RingBufferStatus"],["impl PartialEq for VirtAddr"],["impl PartialEq for VirtPageNum"],["impl PartialEq for MapPermission"],["impl PartialEq for TaskStatus"],["impl PartialEq for MCR"],["impl PartialEq for SignalFlags"],["impl PartialEq for MapType"],["impl PartialEq for OpenFlags"],["impl PartialEq for PTEFlags"],["impl PartialEq for TimerCondVar"],["impl PartialEq for PhysAddr"],["impl PartialEq for LSR"],["impl PartialEq for IER"]] +"os":[["impl PartialEq for RingBufferStatus"],["impl PartialEq for MapType"],["impl PartialEq for TaskStatus"],["impl PartialEq for IER"],["impl PartialEq for LSR"],["impl PartialEq for MCR"],["impl PartialEq for OpenFlags"],["impl PartialEq for PhysAddr"],["impl PartialEq for PhysPageNum"],["impl PartialEq for VirtAddr"],["impl PartialEq for VirtPageNum"],["impl PartialEq for MapPermission"],["impl PartialEq for PTEFlags"],["impl PartialEq for SignalFlags"],["impl PartialEq for TimerCondVar"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/cmp/trait.PartialOrd.js b/main/trait.impl/core/cmp/trait.PartialOrd.js index f3314917..92a99bf5 100644 --- a/main/trait.impl/core/cmp/trait.PartialOrd.js +++ b/main/trait.impl/core/cmp/trait.PartialOrd.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl PartialOrd for MCR"],["impl PartialOrd for PhysAddr"],["impl PartialOrd for IER"],["impl PartialOrd for PTEFlags"],["impl PartialOrd for TimerCondVar"],["impl PartialOrd for LSR"],["impl PartialOrd for OpenFlags"],["impl PartialOrd for VirtAddr"],["impl PartialOrd for VirtPageNum"],["impl PartialOrd for PhysPageNum"],["impl PartialOrd for MapPermission"],["impl PartialOrd for SignalFlags"]] +"os":[["impl PartialOrd for IER"],["impl PartialOrd for LSR"],["impl PartialOrd for MCR"],["impl PartialOrd for OpenFlags"],["impl PartialOrd for PhysAddr"],["impl PartialOrd for PhysPageNum"],["impl PartialOrd for VirtAddr"],["impl PartialOrd for VirtPageNum"],["impl PartialOrd for MapPermission"],["impl PartialOrd for PTEFlags"],["impl PartialOrd for SignalFlags"],["impl PartialOrd for TimerCondVar"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/convert/trait.From.js b/main/trait.impl/core/convert/trait.From.js index 9e85b110..0cdeb45d 100644 --- a/main/trait.impl/core/convert/trait.From.js +++ b/main/trait.impl/core/convert/trait.From.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl From<PhysAddr> for usize"],["impl From<usize> for PhysAddr"],["impl From<PhysAddr> for PhysPageNum"],["impl From<VirtAddr> for VirtPageNum"],["impl From<PhysPageNum> for usize"],["impl From<usize> for VirtPageNum"],["impl From<VirtAddr> for usize"],["impl From<usize> for PhysPageNum"],["impl From<PhysPageNum> for PhysAddr"],["impl From<usize> for VirtAddr"],["impl From<VirtPageNum> for VirtAddr"],["impl From<VirtPageNum> for usize"]] +"os":[["impl From<usize> for PhysAddr"],["impl From<usize> for PhysPageNum"],["impl From<usize> for VirtAddr"],["impl From<usize> for VirtPageNum"],["impl From<PhysAddr> for usize"],["impl From<PhysAddr> for PhysPageNum"],["impl From<PhysPageNum> for usize"],["impl From<PhysPageNum> for PhysAddr"],["impl From<VirtAddr> for usize"],["impl From<VirtAddr> for VirtPageNum"],["impl From<VirtPageNum> for usize"],["impl From<VirtPageNum> for VirtAddr"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/fmt/trait.Binary.js b/main/trait.impl/core/fmt/trait.Binary.js index c6eb7959..fcd772a4 100644 --- a/main/trait.impl/core/fmt/trait.Binary.js +++ b/main/trait.impl/core/fmt/trait.Binary.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Binary for OpenFlags"],["impl Binary for IER"],["impl Binary for SignalFlags"],["impl Binary for LSR"],["impl Binary for MapPermission"],["impl Binary for MCR"],["impl Binary for PTEFlags"]] +"os":[["impl Binary for IER"],["impl Binary for LSR"],["impl Binary for MCR"],["impl Binary for OpenFlags"],["impl Binary for MapPermission"],["impl Binary for PTEFlags"],["impl Binary for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/fmt/trait.Debug.js b/main/trait.impl/core/fmt/trait.Debug.js index 44695272..98f7a184 100644 --- a/main/trait.impl/core/fmt/trait.Debug.js +++ b/main/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Debug for OpenFlags"],["impl Debug for PhysPageNum"],["impl Debug for VirtAddr"],["impl Debug for TrapContext"],["impl Debug for IER"],["impl Debug for PTEFlags"],["impl Debug for LSR"],["impl Debug for MCR"],["impl Debug for SignalFlags"],["impl Debug for MapType"],["impl Debug for PhysAddr"],["impl Debug for FrameTracker"],["impl Debug for VirtPageNum"],["impl Debug for MapPermission"]] +"os":[["impl Debug for MapType"],["impl Debug for IER"],["impl Debug for LSR"],["impl Debug for MCR"],["impl Debug for OpenFlags"],["impl Debug for PhysAddr"],["impl Debug for PhysPageNum"],["impl Debug for VirtAddr"],["impl Debug for VirtPageNum"],["impl Debug for FrameTracker"],["impl Debug for MapPermission"],["impl Debug for PTEFlags"],["impl Debug for SignalFlags"],["impl Debug for TrapContext"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/fmt/trait.LowerHex.js b/main/trait.impl/core/fmt/trait.LowerHex.js index dd3a3be7..798cc5a4 100644 --- a/main/trait.impl/core/fmt/trait.LowerHex.js +++ b/main/trait.impl/core/fmt/trait.LowerHex.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl LowerHex for SignalFlags"],["impl LowerHex for PTEFlags"],["impl LowerHex for MCR"],["impl LowerHex for LSR"],["impl LowerHex for IER"],["impl LowerHex for MapPermission"],["impl LowerHex for OpenFlags"]] +"os":[["impl LowerHex for IER"],["impl LowerHex for LSR"],["impl LowerHex for MCR"],["impl LowerHex for OpenFlags"],["impl LowerHex for MapPermission"],["impl LowerHex for PTEFlags"],["impl LowerHex for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/fmt/trait.Octal.js b/main/trait.impl/core/fmt/trait.Octal.js index 7f849b1b..9d6c1342 100644 --- a/main/trait.impl/core/fmt/trait.Octal.js +++ b/main/trait.impl/core/fmt/trait.Octal.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Octal for SignalFlags"],["impl Octal for MCR"],["impl Octal for OpenFlags"],["impl Octal for IER"],["impl Octal for PTEFlags"],["impl Octal for LSR"],["impl Octal for MapPermission"]] +"os":[["impl Octal for IER"],["impl Octal for LSR"],["impl Octal for MCR"],["impl Octal for OpenFlags"],["impl Octal for MapPermission"],["impl Octal for PTEFlags"],["impl Octal for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/fmt/trait.UpperHex.js b/main/trait.impl/core/fmt/trait.UpperHex.js index 0a08dd85..924f8850 100644 --- a/main/trait.impl/core/fmt/trait.UpperHex.js +++ b/main/trait.impl/core/fmt/trait.UpperHex.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl UpperHex for OpenFlags"],["impl UpperHex for MCR"],["impl UpperHex for IER"],["impl UpperHex for LSR"],["impl UpperHex for PTEFlags"],["impl UpperHex for MapPermission"],["impl UpperHex for SignalFlags"]] +"os":[["impl UpperHex for IER"],["impl UpperHex for LSR"],["impl UpperHex for MCR"],["impl UpperHex for OpenFlags"],["impl UpperHex for MapPermission"],["impl UpperHex for PTEFlags"],["impl UpperHex for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/hash/trait.Hash.js b/main/trait.impl/core/hash/trait.Hash.js index 1e2c9be1..eaff7237 100644 --- a/main/trait.impl/core/hash/trait.Hash.js +++ b/main/trait.impl/core/hash/trait.Hash.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Hash for IER"],["impl Hash for PTEFlags"],["impl Hash for MCR"],["impl Hash for SignalFlags"],["impl Hash for LSR"],["impl Hash for MapPermission"],["impl Hash for OpenFlags"]] +"os":[["impl Hash for IER"],["impl Hash for LSR"],["impl Hash for MCR"],["impl Hash for OpenFlags"],["impl Hash for MapPermission"],["impl Hash for PTEFlags"],["impl Hash for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/iter/traits/collect/trait.Extend.js b/main/trait.impl/core/iter/traits/collect/trait.Extend.js index f8ec67f4..fc87eccf 100644 --- a/main/trait.impl/core/iter/traits/collect/trait.Extend.js +++ b/main/trait.impl/core/iter/traits/collect/trait.Extend.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Extend<MapPermission> for MapPermission"],["impl Extend<OpenFlags> for OpenFlags"],["impl Extend<PTEFlags> for PTEFlags"],["impl Extend<MCR> for MCR"],["impl Extend<IER> for IER"],["impl Extend<SignalFlags> for SignalFlags"],["impl Extend<LSR> for LSR"]] +"os":[["impl Extend<IER> for IER"],["impl Extend<LSR> for LSR"],["impl Extend<MCR> for MCR"],["impl Extend<OpenFlags> for OpenFlags"],["impl Extend<MapPermission> for MapPermission"],["impl Extend<PTEFlags> for PTEFlags"],["impl Extend<SignalFlags> for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/iter/traits/collect/trait.FromIterator.js b/main/trait.impl/core/iter/traits/collect/trait.FromIterator.js index c1c0ae44..48055ce3 100644 --- a/main/trait.impl/core/iter/traits/collect/trait.FromIterator.js +++ b/main/trait.impl/core/iter/traits/collect/trait.FromIterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl FromIterator<PTEFlags> for PTEFlags"],["impl FromIterator<LSR> for LSR"],["impl FromIterator<SignalFlags> for SignalFlags"],["impl FromIterator<IER> for IER"],["impl FromIterator<MCR> for MCR"],["impl FromIterator<OpenFlags> for OpenFlags"],["impl FromIterator<MapPermission> for MapPermission"]] +"os":[["impl FromIterator<IER> for IER"],["impl FromIterator<LSR> for LSR"],["impl FromIterator<MCR> for MCR"],["impl FromIterator<OpenFlags> for OpenFlags"],["impl FromIterator<MapPermission> for MapPermission"],["impl FromIterator<PTEFlags> for PTEFlags"],["impl FromIterator<SignalFlags> for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/iter/traits/collect/trait.IntoIterator.js b/main/trait.impl/core/iter/traits/collect/trait.IntoIterator.js index 6a96ea0e..85064ff4 100644 --- a/main/trait.impl/core/iter/traits/collect/trait.IntoIterator.js +++ b/main/trait.impl/core/iter/traits/collect/trait.IntoIterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl<T> IntoIterator for SimpleRange<T>"],["impl IntoIterator for UserBuffer"]] +"os":[["impl IntoIterator for UserBuffer"],["impl<T> IntoIterator for SimpleRange<T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/iter/traits/iterator/trait.Iterator.js b/main/trait.impl/core/iter/traits/iterator/trait.Iterator.js index 51951cbd..9f546e1f 100644 --- a/main/trait.impl/core/iter/traits/iterator/trait.Iterator.js +++ b/main/trait.impl/core/iter/traits/iterator/trait.Iterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl<T> Iterator for SimpleRangeIterator<T>"],["impl Iterator for UserBufferIterator"]] +"os":[["impl Iterator for UserBufferIterator"],["impl<T> Iterator for SimpleRangeIterator<T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.Copy.js b/main/trait.impl/core/marker/trait.Copy.js index b5afeb23..935c8f90 100644 --- a/main/trait.impl/core/marker/trait.Copy.js +++ b/main/trait.impl/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Copy for IER"],["impl Copy for TaskStatus"],["impl<T> Copy for SimpleRange<T>"],["impl Copy for LSR"],["impl Copy for VirtAddr"],["impl Copy for MapPermission"],["impl Copy for SignalFlags"],["impl Copy for PhysAddr"],["impl Copy for PTEFlags"],["impl Copy for VirtPageNum"],["impl Copy for PhysPageNum"],["impl Copy for RingBufferStatus"],["impl Copy for IntrTargetPriority"],["impl Copy for PageTableEntry"],["impl Copy for MCR"],["impl Copy for MapType"],["impl Copy for OpenFlags"]] +"os":[["impl Copy for IntrTargetPriority"],["impl Copy for RingBufferStatus"],["impl Copy for MapType"],["impl Copy for TaskStatus"],["impl Copy for IER"],["impl Copy for LSR"],["impl Copy for MCR"],["impl Copy for OpenFlags"],["impl Copy for PhysAddr"],["impl Copy for PhysPageNum"],["impl Copy for VirtAddr"],["impl Copy for VirtPageNum"],["impl Copy for MapPermission"],["impl Copy for PTEFlags"],["impl Copy for PageTableEntry"],["impl Copy for SignalFlags"],["impl<T> Copy for SimpleRange<T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.Freeze.js b/main/trait.impl/core/marker/trait.Freeze.js index c6f6751c..5140b52c 100644 --- a/main/trait.impl/core/marker/trait.Freeze.js +++ b/main/trait.impl/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Freeze for Stdout",1,["os::console::Stdout"]],["impl !Freeze for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl Freeze for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Freeze for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Freeze for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Freeze for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Freeze for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Freeze for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Freeze for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Freeze for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Freeze for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Freeze for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl<const BASE_ADDR: usize> !Freeze for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]],["impl Freeze for UART",1,["os::drivers::chardev::UART"]],["impl Freeze for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl !Freeze for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl Freeze for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl !Freeze for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl Freeze for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Freeze for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Freeze for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl !Freeze for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl Freeze for PLIC",1,["os::drivers::plic::PLIC"]],["impl Freeze for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl !Freeze for OSInode",1,["os::fs::inode::OSInode"]],["impl Freeze for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Freeze for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Freeze for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Freeze for Pipe",1,["os::fs::pipe::Pipe"]],["impl Freeze for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Freeze for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Freeze for Stdin",1,["os::fs::stdio::Stdin"]],["impl Freeze for Stdout",1,["os::fs::stdio::Stdout"]],["impl Freeze for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Freeze for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Freeze for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Freeze for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl<T> Freeze for SimpleRange<T>
where\n T: Freeze,
",1,["os::mm::address::SimpleRange"]],["impl<T> Freeze for SimpleRangeIterator<T>
where\n T: Freeze,
",1,["os::mm::address::SimpleRangeIterator"]],["impl Freeze for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Freeze for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Freeze for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Freeze for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Freeze for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Freeze for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Freeze for MapType",1,["os::mm::memory_set::MapType"]],["impl Freeze for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Freeze for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Freeze for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Freeze for PageTable",1,["os::mm::page_table::PageTable"]],["impl Freeze for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Freeze for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Freeze for Port",1,["os::net::port_table::Port"]],["impl Freeze for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Freeze for PortFd",1,["os::net::port_table::PortFd"]],["impl Freeze for Socket",1,["os::net::socket::Socket"]],["impl Freeze for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Freeze for TCP",1,["os::net::tcp::TCP"]],["impl Freeze for UDP",1,["os::net::udp::UDP"]],["impl !Freeze for NetStack",1,["os::net::NetStack"]],["impl Freeze for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl !Freeze for Condvar",1,["os::sync::condvar::Condvar"]],["impl Freeze for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl !Freeze for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl !Freeze for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl Freeze for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl !Freeze for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl Freeze for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl<T> !Freeze for UPSafeCellRaw<T>",1,["os::sync::up::UPSafeCellRaw"]],["impl Freeze for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Freeze for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl<T> !Freeze for UPIntrFreeCell<T>",1,["os::sync::up::UPIntrFreeCell"]],["impl<'a, T> Freeze for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl Freeze for TaskContext",1,["os::task::context::TaskContext"]],["impl Freeze for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Freeze for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Freeze for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Freeze for PidHandle",1,["os::task::id::PidHandle"]],["impl Freeze for KernelStack",1,["os::task::id::KernelStack"]],["impl Freeze for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Freeze for TaskManager",1,["os::task::manager::TaskManager"]],["impl Freeze for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Freeze for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl !Freeze for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl Freeze for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Freeze for Processor",1,["os::task::processor::Processor"]],["impl Freeze for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Freeze for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl !Freeze for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Freeze for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Freeze for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Freeze for INITPROC",1,["os::task::INITPROC"]],["impl Freeze for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Freeze for TIMERS",1,["os::timer::TIMERS"]],["impl Freeze for TrapContext",1,["os::trap::context::TrapContext"]],["impl Freeze for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]]] +"os":[["impl !Freeze for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl !Freeze for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl !Freeze for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl !Freeze for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl !Freeze for OSInode",1,["os::fs::inode::OSInode"]],["impl !Freeze for NetStack",1,["os::net::NetStack"]],["impl !Freeze for Condvar",1,["os::sync::condvar::Condvar"]],["impl !Freeze for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl !Freeze for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl !Freeze for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl !Freeze for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl !Freeze for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Freeze for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl Freeze for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Freeze for MapType",1,["os::mm::memory_set::MapType"]],["impl Freeze for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Freeze for Stdout",1,["os::console::Stdout"]],["impl Freeze for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Freeze for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Freeze for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Freeze for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Freeze for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Freeze for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Freeze for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl Freeze for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Freeze for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Freeze for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Freeze for UART",1,["os::drivers::chardev::UART"]],["impl Freeze for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl Freeze for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Freeze for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Freeze for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl Freeze for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl Freeze for PLIC",1,["os::drivers::plic::PLIC"]],["impl Freeze for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Freeze for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Freeze for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Freeze for Pipe",1,["os::fs::pipe::Pipe"]],["impl Freeze for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Freeze for Stdin",1,["os::fs::stdio::Stdin"]],["impl Freeze for Stdout",1,["os::fs::stdio::Stdout"]],["impl Freeze for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Freeze for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Freeze for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Freeze for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl Freeze for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Freeze for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Freeze for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Freeze for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Freeze for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Freeze for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Freeze for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Freeze for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Freeze for PageTable",1,["os::mm::page_table::PageTable"]],["impl Freeze for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Freeze for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Freeze for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Freeze for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Freeze for Port",1,["os::net::port_table::Port"]],["impl Freeze for PortFd",1,["os::net::port_table::PortFd"]],["impl Freeze for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Freeze for Socket",1,["os::net::socket::Socket"]],["impl Freeze for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl Freeze for TCP",1,["os::net::tcp::TCP"]],["impl Freeze for UDP",1,["os::net::udp::UDP"]],["impl Freeze for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]],["impl Freeze for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl Freeze for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl Freeze for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl Freeze for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl Freeze for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Freeze for TaskContext",1,["os::task::context::TaskContext"]],["impl Freeze for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Freeze for KernelStack",1,["os::task::id::KernelStack"]],["impl Freeze for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Freeze for PidHandle",1,["os::task::id::PidHandle"]],["impl Freeze for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Freeze for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Freeze for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl Freeze for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Freeze for TaskManager",1,["os::task::manager::TaskManager"]],["impl Freeze for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Freeze for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Freeze for Processor",1,["os::task::processor::Processor"]],["impl Freeze for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl Freeze for INITPROC",1,["os::task::INITPROC"]],["impl Freeze for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Freeze for TIMERS",1,["os::timer::TIMERS"]],["impl Freeze for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Freeze for TrapContext",1,["os::trap::context::TrapContext"]],["impl<'a, T> Freeze for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl<T> !Freeze for UPIntrFreeCell<T>",1,["os::sync::up::UPIntrFreeCell"]],["impl<T> !Freeze for UPSafeCellRaw<T>",1,["os::sync::up::UPSafeCellRaw"]],["impl<T> Freeze for SimpleRange<T>
where\n T: Freeze,
",1,["os::mm::address::SimpleRange"]],["impl<T> Freeze for SimpleRangeIterator<T>
where\n T: Freeze,
",1,["os::mm::address::SimpleRangeIterator"]],["impl<const BASE_ADDR: usize> !Freeze for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.Send.js b/main/trait.impl/core/marker/trait.Send.js index d1f4035d..d4f0c9a8 100644 --- a/main/trait.impl/core/marker/trait.Send.js +++ b/main/trait.impl/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Send for Stdout",1,["os::console::Stdout"]],["impl Send for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl Send for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Send for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Send for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Send for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Send for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Send for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Send for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Send for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Send for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Send for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]],["impl Send for UART",1,["os::drivers::chardev::UART"]],["impl Send for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl Send for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl Send for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl Send for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl Send for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Send for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Send for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl Send for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl Send for PLIC",1,["os::drivers::plic::PLIC"]],["impl Send for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl Send for OSInode",1,["os::fs::inode::OSInode"]],["impl Send for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Send for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Send for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Send for Pipe",1,["os::fs::pipe::Pipe"]],["impl Send for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Send for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Send for Stdin",1,["os::fs::stdio::Stdin"]],["impl Send for Stdout",1,["os::fs::stdio::Stdout"]],["impl Send for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Send for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Send for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Send for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl<T> Send for SimpleRange<T>
where\n T: Send,
",1,["os::mm::address::SimpleRange"]],["impl<T> Send for SimpleRangeIterator<T>
where\n T: Send,
",1,["os::mm::address::SimpleRangeIterator"]],["impl Send for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Send for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Send for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Send for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Send for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Send for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Send for MapType",1,["os::mm::memory_set::MapType"]],["impl Send for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Send for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Send for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Send for PageTable",1,["os::mm::page_table::PageTable"]],["impl Send for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Send for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Send for Port",1,["os::net::port_table::Port"]],["impl Send for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Send for PortFd",1,["os::net::port_table::PortFd"]],["impl Send for Socket",1,["os::net::socket::Socket"]],["impl Send for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Send for TCP",1,["os::net::tcp::TCP"]],["impl Send for UDP",1,["os::net::udp::UDP"]],["impl Send for NetStack",1,["os::net::NetStack"]],["impl Send for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl Send for Condvar",1,["os::sync::condvar::Condvar"]],["impl Send for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl Send for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl Send for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl Send for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl Send for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl Send for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl<T> Send for UPSafeCellRaw<T>
where\n T: Send,
",1,["os::sync::up::UPSafeCellRaw"]],["impl Send for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Send for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl<T> Send for UPIntrFreeCell<T>
where\n T: Send,
",1,["os::sync::up::UPIntrFreeCell"]],["impl<'a, T> !Send for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl Send for TaskContext",1,["os::task::context::TaskContext"]],["impl Send for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Send for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Send for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Send for PidHandle",1,["os::task::id::PidHandle"]],["impl Send for KernelStack",1,["os::task::id::KernelStack"]],["impl Send for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Send for TaskManager",1,["os::task::manager::TaskManager"]],["impl Send for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Send for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl Send for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl Send for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Send for Processor",1,["os::task::processor::Processor"]],["impl Send for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Send for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl Send for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Send for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Send for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Send for INITPROC",1,["os::task::INITPROC"]],["impl Send for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Send for TIMERS",1,["os::timer::TIMERS"]],["impl Send for TrapContext",1,["os::trap::context::TrapContext"]],["impl Send for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]]] +"os":[["impl Send for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl Send for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Send for MapType",1,["os::mm::memory_set::MapType"]],["impl Send for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Send for Stdout",1,["os::console::Stdout"]],["impl Send for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Send for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl Send for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Send for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Send for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Send for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Send for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Send for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl Send for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Send for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Send for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Send for UART",1,["os::drivers::chardev::UART"]],["impl Send for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl Send for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl Send for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Send for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Send for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl Send for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl Send for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl Send for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl Send for PLIC",1,["os::drivers::plic::PLIC"]],["impl Send for OSInode",1,["os::fs::inode::OSInode"]],["impl Send for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Send for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Send for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Send for Pipe",1,["os::fs::pipe::Pipe"]],["impl Send for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Send for Stdin",1,["os::fs::stdio::Stdin"]],["impl Send for Stdout",1,["os::fs::stdio::Stdout"]],["impl Send for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Send for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Send for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Send for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl Send for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Send for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Send for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Send for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Send for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Send for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Send for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Send for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Send for PageTable",1,["os::mm::page_table::PageTable"]],["impl Send for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Send for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Send for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Send for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Send for Port",1,["os::net::port_table::Port"]],["impl Send for PortFd",1,["os::net::port_table::PortFd"]],["impl Send for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Send for Socket",1,["os::net::socket::Socket"]],["impl Send for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl Send for NetStack",1,["os::net::NetStack"]],["impl Send for TCP",1,["os::net::tcp::TCP"]],["impl Send for UDP",1,["os::net::udp::UDP"]],["impl Send for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]],["impl Send for Condvar",1,["os::sync::condvar::Condvar"]],["impl Send for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl Send for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl Send for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl Send for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl Send for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl Send for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl Send for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl Send for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Send for TaskContext",1,["os::task::context::TaskContext"]],["impl Send for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Send for KernelStack",1,["os::task::id::KernelStack"]],["impl Send for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Send for PidHandle",1,["os::task::id::PidHandle"]],["impl Send for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Send for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Send for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl Send for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Send for TaskManager",1,["os::task::manager::TaskManager"]],["impl Send for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl Send for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Send for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Send for Processor",1,["os::task::processor::Processor"]],["impl Send for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl Send for INITPROC",1,["os::task::INITPROC"]],["impl Send for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Send for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Send for TIMERS",1,["os::timer::TIMERS"]],["impl Send for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Send for TrapContext",1,["os::trap::context::TrapContext"]],["impl<'a, T> !Send for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl<T> Send for SimpleRange<T>
where\n T: Send,
",1,["os::mm::address::SimpleRange"]],["impl<T> Send for SimpleRangeIterator<T>
where\n T: Send,
",1,["os::mm::address::SimpleRangeIterator"]],["impl<T> Send for UPIntrFreeCell<T>
where\n T: Send,
",1,["os::sync::up::UPIntrFreeCell"]],["impl<T> Send for UPSafeCellRaw<T>
where\n T: Send,
",1,["os::sync::up::UPSafeCellRaw"]],["impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.StructuralEq.js b/main/trait.impl/core/marker/trait.StructuralEq.js deleted file mode 100644 index 05e6c95c..00000000 --- a/main/trait.impl/core/marker/trait.StructuralEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"os":[["impl StructuralEq for OpenFlags"],["impl StructuralEq for SignalFlags"],["impl StructuralEq for VirtAddr"],["impl StructuralEq for MCR"],["impl StructuralEq for PTEFlags"],["impl StructuralEq for PhysAddr"],["impl StructuralEq for PhysPageNum"],["impl StructuralEq for VirtPageNum"],["impl StructuralEq for LSR"],["impl StructuralEq for IER"],["impl StructuralEq for MapPermission"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.StructuralPartialEq.js b/main/trait.impl/core/marker/trait.StructuralPartialEq.js index 4cc3b436..76ff41ff 100644 --- a/main/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/main/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl StructuralPartialEq for VirtPageNum"],["impl StructuralPartialEq for PhysPageNum"],["impl StructuralPartialEq for SignalFlags"],["impl StructuralPartialEq for MCR"],["impl StructuralPartialEq for RingBufferStatus"],["impl StructuralPartialEq for VirtAddr"],["impl StructuralPartialEq for IER"],["impl StructuralPartialEq for OpenFlags"],["impl StructuralPartialEq for MapPermission"],["impl StructuralPartialEq for PhysAddr"],["impl StructuralPartialEq for LSR"],["impl StructuralPartialEq for TaskStatus"],["impl StructuralPartialEq for MapType"],["impl StructuralPartialEq for PTEFlags"]] +"os":[["impl StructuralPartialEq for RingBufferStatus"],["impl StructuralPartialEq for MapType"],["impl StructuralPartialEq for TaskStatus"],["impl StructuralPartialEq for IER"],["impl StructuralPartialEq for LSR"],["impl StructuralPartialEq for MCR"],["impl StructuralPartialEq for OpenFlags"],["impl StructuralPartialEq for PhysAddr"],["impl StructuralPartialEq for PhysPageNum"],["impl StructuralPartialEq for VirtAddr"],["impl StructuralPartialEq for VirtPageNum"],["impl StructuralPartialEq for MapPermission"],["impl StructuralPartialEq for PTEFlags"],["impl StructuralPartialEq for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.Sync.js b/main/trait.impl/core/marker/trait.Sync.js index 8b58b55c..78d1fe73 100644 --- a/main/trait.impl/core/marker/trait.Sync.js +++ b/main/trait.impl/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Sync for Stdout",1,["os::console::Stdout"]],["impl Sync for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl Sync for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Sync for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Sync for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Sync for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Sync for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Sync for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Sync for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Sync for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Sync for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Sync for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]],["impl Sync for UART",1,["os::drivers::chardev::UART"]],["impl Sync for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl Sync for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl Sync for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl Sync for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl Sync for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Sync for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Sync for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl Sync for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl Sync for PLIC",1,["os::drivers::plic::PLIC"]],["impl Sync for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl Sync for OSInode",1,["os::fs::inode::OSInode"]],["impl Sync for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Sync for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Sync for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Sync for Pipe",1,["os::fs::pipe::Pipe"]],["impl Sync for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Sync for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Sync for Stdin",1,["os::fs::stdio::Stdin"]],["impl Sync for Stdout",1,["os::fs::stdio::Stdout"]],["impl Sync for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Sync for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Sync for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Sync for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl<T> Sync for SimpleRange<T>
where\n T: Sync,
",1,["os::mm::address::SimpleRange"]],["impl<T> Sync for SimpleRangeIterator<T>
where\n T: Sync,
",1,["os::mm::address::SimpleRangeIterator"]],["impl Sync for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Sync for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Sync for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Sync for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Sync for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Sync for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Sync for MapType",1,["os::mm::memory_set::MapType"]],["impl Sync for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Sync for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Sync for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Sync for PageTable",1,["os::mm::page_table::PageTable"]],["impl Sync for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Sync for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Sync for Port",1,["os::net::port_table::Port"]],["impl Sync for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Sync for PortFd",1,["os::net::port_table::PortFd"]],["impl Sync for Socket",1,["os::net::socket::Socket"]],["impl Sync for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Sync for TCP",1,["os::net::tcp::TCP"]],["impl Sync for UDP",1,["os::net::udp::UDP"]],["impl Sync for NetStack",1,["os::net::NetStack"]],["impl Sync for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl Sync for Condvar",1,["os::sync::condvar::Condvar"]],["impl Sync for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl Sync for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl Sync for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl Sync for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl Sync for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl Sync for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl Sync for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Sync for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl<'a, T> !Sync for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl Sync for TaskContext",1,["os::task::context::TaskContext"]],["impl Sync for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Sync for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Sync for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Sync for PidHandle",1,["os::task::id::PidHandle"]],["impl Sync for KernelStack",1,["os::task::id::KernelStack"]],["impl Sync for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Sync for TaskManager",1,["os::task::manager::TaskManager"]],["impl Sync for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Sync for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl Sync for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl Sync for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Sync for Processor",1,["os::task::processor::Processor"]],["impl Sync for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Sync for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl Sync for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Sync for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Sync for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Sync for INITPROC",1,["os::task::INITPROC"]],["impl Sync for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Sync for TIMERS",1,["os::timer::TIMERS"]],["impl Sync for TrapContext",1,["os::trap::context::TrapContext"]],["impl Sync for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]],["impl<T> Sync for UPIntrFreeCell<T>"],["impl<T> Sync for UPSafeCellRaw<T>"]] +"os":[["impl Sync for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl Sync for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Sync for MapType",1,["os::mm::memory_set::MapType"]],["impl Sync for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Sync for Stdout",1,["os::console::Stdout"]],["impl Sync for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Sync for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl Sync for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Sync for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Sync for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Sync for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Sync for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Sync for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl Sync for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Sync for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Sync for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Sync for UART",1,["os::drivers::chardev::UART"]],["impl Sync for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl Sync for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl Sync for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Sync for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Sync for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl Sync for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl Sync for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl Sync for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl Sync for PLIC",1,["os::drivers::plic::PLIC"]],["impl Sync for OSInode",1,["os::fs::inode::OSInode"]],["impl Sync for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Sync for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Sync for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Sync for Pipe",1,["os::fs::pipe::Pipe"]],["impl Sync for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Sync for Stdin",1,["os::fs::stdio::Stdin"]],["impl Sync for Stdout",1,["os::fs::stdio::Stdout"]],["impl Sync for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Sync for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Sync for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Sync for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl Sync for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Sync for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Sync for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Sync for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Sync for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Sync for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Sync for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Sync for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Sync for PageTable",1,["os::mm::page_table::PageTable"]],["impl Sync for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Sync for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Sync for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Sync for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Sync for Port",1,["os::net::port_table::Port"]],["impl Sync for PortFd",1,["os::net::port_table::PortFd"]],["impl Sync for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Sync for Socket",1,["os::net::socket::Socket"]],["impl Sync for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl Sync for NetStack",1,["os::net::NetStack"]],["impl Sync for TCP",1,["os::net::tcp::TCP"]],["impl Sync for UDP",1,["os::net::udp::UDP"]],["impl Sync for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]],["impl Sync for Condvar",1,["os::sync::condvar::Condvar"]],["impl Sync for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl Sync for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl Sync for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl Sync for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl Sync for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl Sync for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl Sync for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl Sync for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Sync for TaskContext",1,["os::task::context::TaskContext"]],["impl Sync for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Sync for KernelStack",1,["os::task::id::KernelStack"]],["impl Sync for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Sync for PidHandle",1,["os::task::id::PidHandle"]],["impl Sync for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Sync for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Sync for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl Sync for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Sync for TaskManager",1,["os::task::manager::TaskManager"]],["impl Sync for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl Sync for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Sync for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Sync for Processor",1,["os::task::processor::Processor"]],["impl Sync for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl Sync for INITPROC",1,["os::task::INITPROC"]],["impl Sync for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Sync for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Sync for TIMERS",1,["os::timer::TIMERS"]],["impl Sync for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Sync for TrapContext",1,["os::trap::context::TrapContext"]],["impl<'a, T> !Sync for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl<T> Sync for SimpleRange<T>
where\n T: Sync,
",1,["os::mm::address::SimpleRange"]],["impl<T> Sync for SimpleRangeIterator<T>
where\n T: Sync,
",1,["os::mm::address::SimpleRangeIterator"]],["impl<T> Sync for UPIntrFreeCell<T>"],["impl<T> Sync for UPSafeCellRaw<T>"],["impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.Unpin.js b/main/trait.impl/core/marker/trait.Unpin.js index 2221c685..ebc5fb04 100644 --- a/main/trait.impl/core/marker/trait.Unpin.js +++ b/main/trait.impl/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Unpin for Stdout",1,["os::console::Stdout"]],["impl Unpin for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl Unpin for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Unpin for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Unpin for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Unpin for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Unpin for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Unpin for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Unpin for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Unpin for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Unpin for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Unpin for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]],["impl Unpin for UART",1,["os::drivers::chardev::UART"]],["impl Unpin for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl Unpin for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl Unpin for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl Unpin for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl Unpin for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Unpin for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Unpin for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl Unpin for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl Unpin for PLIC",1,["os::drivers::plic::PLIC"]],["impl Unpin for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl Unpin for OSInode",1,["os::fs::inode::OSInode"]],["impl Unpin for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Unpin for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Unpin for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Unpin for Pipe",1,["os::fs::pipe::Pipe"]],["impl Unpin for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Unpin for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Unpin for Stdin",1,["os::fs::stdio::Stdin"]],["impl Unpin for Stdout",1,["os::fs::stdio::Stdout"]],["impl Unpin for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Unpin for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Unpin for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Unpin for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl<T> Unpin for SimpleRange<T>
where\n T: Unpin,
",1,["os::mm::address::SimpleRange"]],["impl<T> Unpin for SimpleRangeIterator<T>
where\n T: Unpin,
",1,["os::mm::address::SimpleRangeIterator"]],["impl Unpin for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Unpin for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Unpin for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Unpin for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Unpin for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Unpin for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Unpin for MapType",1,["os::mm::memory_set::MapType"]],["impl Unpin for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Unpin for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Unpin for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Unpin for PageTable",1,["os::mm::page_table::PageTable"]],["impl Unpin for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Unpin for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Unpin for Port",1,["os::net::port_table::Port"]],["impl Unpin for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Unpin for PortFd",1,["os::net::port_table::PortFd"]],["impl Unpin for Socket",1,["os::net::socket::Socket"]],["impl Unpin for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Unpin for TCP",1,["os::net::tcp::TCP"]],["impl Unpin for UDP",1,["os::net::udp::UDP"]],["impl Unpin for NetStack",1,["os::net::NetStack"]],["impl Unpin for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl Unpin for Condvar",1,["os::sync::condvar::Condvar"]],["impl Unpin for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl Unpin for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl Unpin for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl Unpin for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl Unpin for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl Unpin for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl<T> Unpin for UPSafeCellRaw<T>
where\n T: Unpin,
",1,["os::sync::up::UPSafeCellRaw"]],["impl Unpin for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Unpin for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl<T> Unpin for UPIntrFreeCell<T>
where\n T: Unpin,
",1,["os::sync::up::UPIntrFreeCell"]],["impl<'a, T> Unpin for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl Unpin for TaskContext",1,["os::task::context::TaskContext"]],["impl Unpin for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Unpin for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Unpin for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Unpin for PidHandle",1,["os::task::id::PidHandle"]],["impl Unpin for KernelStack",1,["os::task::id::KernelStack"]],["impl Unpin for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Unpin for TaskManager",1,["os::task::manager::TaskManager"]],["impl Unpin for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Unpin for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl Unpin for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl Unpin for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Unpin for Processor",1,["os::task::processor::Processor"]],["impl Unpin for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Unpin for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl Unpin for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Unpin for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Unpin for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Unpin for INITPROC",1,["os::task::INITPROC"]],["impl Unpin for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Unpin for TIMERS",1,["os::timer::TIMERS"]],["impl Unpin for TrapContext",1,["os::trap::context::TrapContext"]],["impl Unpin for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]]] +"os":[["impl Unpin for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl Unpin for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl Unpin for MapType",1,["os::mm::memory_set::MapType"]],["impl Unpin for TaskStatus",1,["os::task::task::TaskStatus"]],["impl Unpin for Stdout",1,["os::console::Stdout"]],["impl Unpin for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl Unpin for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl Unpin for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl Unpin for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl Unpin for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl Unpin for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl Unpin for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl Unpin for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl Unpin for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl Unpin for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl Unpin for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl Unpin for UART",1,["os::drivers::chardev::UART"]],["impl Unpin for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl Unpin for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl Unpin for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl Unpin for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl Unpin for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl Unpin for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl Unpin for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl Unpin for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl Unpin for PLIC",1,["os::drivers::plic::PLIC"]],["impl Unpin for OSInode",1,["os::fs::inode::OSInode"]],["impl Unpin for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl Unpin for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl Unpin for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl Unpin for Pipe",1,["os::fs::pipe::Pipe"]],["impl Unpin for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl Unpin for Stdin",1,["os::fs::stdio::Stdin"]],["impl Unpin for Stdout",1,["os::fs::stdio::Stdout"]],["impl Unpin for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl Unpin for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl Unpin for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl Unpin for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl Unpin for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl Unpin for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl Unpin for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl Unpin for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl Unpin for MapArea",1,["os::mm::memory_set::MapArea"]],["impl Unpin for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl Unpin for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl Unpin for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl Unpin for PageTable",1,["os::mm::page_table::PageTable"]],["impl Unpin for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl Unpin for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl Unpin for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl Unpin for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl Unpin for Port",1,["os::net::port_table::Port"]],["impl Unpin for PortFd",1,["os::net::port_table::PortFd"]],["impl Unpin for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl Unpin for Socket",1,["os::net::socket::Socket"]],["impl Unpin for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl Unpin for NetStack",1,["os::net::NetStack"]],["impl Unpin for TCP",1,["os::net::tcp::TCP"]],["impl Unpin for UDP",1,["os::net::udp::UDP"]],["impl Unpin for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]],["impl Unpin for Condvar",1,["os::sync::condvar::Condvar"]],["impl Unpin for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl Unpin for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl Unpin for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl Unpin for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl Unpin for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl Unpin for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl Unpin for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl Unpin for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl Unpin for TaskContext",1,["os::task::context::TaskContext"]],["impl Unpin for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl Unpin for KernelStack",1,["os::task::id::KernelStack"]],["impl Unpin for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl Unpin for PidHandle",1,["os::task::id::PidHandle"]],["impl Unpin for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl Unpin for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl Unpin for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl Unpin for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl Unpin for TaskManager",1,["os::task::manager::TaskManager"]],["impl Unpin for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl Unpin for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl Unpin for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl Unpin for Processor",1,["os::task::processor::Processor"]],["impl Unpin for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl Unpin for INITPROC",1,["os::task::INITPROC"]],["impl Unpin for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl Unpin for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl Unpin for TIMERS",1,["os::timer::TIMERS"]],["impl Unpin for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl Unpin for TrapContext",1,["os::trap::context::TrapContext"]],["impl<'a, T> Unpin for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl<T> Unpin for SimpleRange<T>
where\n T: Unpin,
",1,["os::mm::address::SimpleRange"]],["impl<T> Unpin for SimpleRangeIterator<T>
where\n T: Unpin,
",1,["os::mm::address::SimpleRangeIterator"]],["impl<T> Unpin for UPIntrFreeCell<T>
where\n T: Unpin,
",1,["os::sync::up::UPIntrFreeCell"]],["impl<T> Unpin for UPSafeCellRaw<T>
where\n T: Unpin,
",1,["os::sync::up::UPSafeCellRaw"]],["impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/arith/trait.Sub.js b/main/trait.impl/core/ops/arith/trait.Sub.js index e483cf84..8ccb8906 100644 --- a/main/trait.impl/core/ops/arith/trait.Sub.js +++ b/main/trait.impl/core/ops/arith/trait.Sub.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Sub for PTEFlags"],["impl Sub for IER"],["impl Sub for MapPermission"],["impl Sub for SignalFlags"],["impl Sub for LSR"],["impl Sub for OpenFlags"],["impl Sub for MCR"]] +"os":[["impl Sub for IER"],["impl Sub for LSR"],["impl Sub for MCR"],["impl Sub for OpenFlags"],["impl Sub for MapPermission"],["impl Sub for PTEFlags"],["impl Sub for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/arith/trait.SubAssign.js b/main/trait.impl/core/ops/arith/trait.SubAssign.js index 804ac929..e9dc5663 100644 --- a/main/trait.impl/core/ops/arith/trait.SubAssign.js +++ b/main/trait.impl/core/ops/arith/trait.SubAssign.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl SubAssign for SignalFlags"],["impl SubAssign for PTEFlags"],["impl SubAssign for OpenFlags"],["impl SubAssign for MapPermission"],["impl SubAssign for LSR"],["impl SubAssign for IER"],["impl SubAssign for MCR"]] +"os":[["impl SubAssign for IER"],["impl SubAssign for LSR"],["impl SubAssign for MCR"],["impl SubAssign for OpenFlags"],["impl SubAssign for MapPermission"],["impl SubAssign for PTEFlags"],["impl SubAssign for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/bit/trait.BitAnd.js b/main/trait.impl/core/ops/bit/trait.BitAnd.js index 0d067386..1d1035e2 100644 --- a/main/trait.impl/core/ops/bit/trait.BitAnd.js +++ b/main/trait.impl/core/ops/bit/trait.BitAnd.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl BitAnd for OpenFlags"],["impl BitAnd for SignalFlags"],["impl BitAnd for IER"],["impl BitAnd for MapPermission"],["impl BitAnd for LSR"],["impl BitAnd for MCR"],["impl BitAnd for PTEFlags"]] +"os":[["impl BitAnd for IER"],["impl BitAnd for LSR"],["impl BitAnd for MCR"],["impl BitAnd for OpenFlags"],["impl BitAnd for MapPermission"],["impl BitAnd for PTEFlags"],["impl BitAnd for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/bit/trait.BitAndAssign.js b/main/trait.impl/core/ops/bit/trait.BitAndAssign.js index 098a646e..a5e8964b 100644 --- a/main/trait.impl/core/ops/bit/trait.BitAndAssign.js +++ b/main/trait.impl/core/ops/bit/trait.BitAndAssign.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl BitAndAssign for LSR"],["impl BitAndAssign for MCR"],["impl BitAndAssign for MapPermission"],["impl BitAndAssign for OpenFlags"],["impl BitAndAssign for PTEFlags"],["impl BitAndAssign for SignalFlags"],["impl BitAndAssign for IER"]] +"os":[["impl BitAndAssign for IER"],["impl BitAndAssign for LSR"],["impl BitAndAssign for MCR"],["impl BitAndAssign for OpenFlags"],["impl BitAndAssign for MapPermission"],["impl BitAndAssign for PTEFlags"],["impl BitAndAssign for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/bit/trait.BitOr.js b/main/trait.impl/core/ops/bit/trait.BitOr.js index 7ededf3e..abb9895d 100644 --- a/main/trait.impl/core/ops/bit/trait.BitOr.js +++ b/main/trait.impl/core/ops/bit/trait.BitOr.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl BitOr for MCR"],["impl BitOr for SignalFlags"],["impl BitOr for OpenFlags"],["impl BitOr for IER"],["impl BitOr for MapPermission"],["impl BitOr for PTEFlags"],["impl BitOr for LSR"]] +"os":[["impl BitOr for IER"],["impl BitOr for LSR"],["impl BitOr for MCR"],["impl BitOr for OpenFlags"],["impl BitOr for MapPermission"],["impl BitOr for PTEFlags"],["impl BitOr for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/bit/trait.BitOrAssign.js b/main/trait.impl/core/ops/bit/trait.BitOrAssign.js index 184b7565..827eef7f 100644 --- a/main/trait.impl/core/ops/bit/trait.BitOrAssign.js +++ b/main/trait.impl/core/ops/bit/trait.BitOrAssign.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl BitOrAssign for MapPermission"],["impl BitOrAssign for MCR"],["impl BitOrAssign for SignalFlags"],["impl BitOrAssign for IER"],["impl BitOrAssign for LSR"],["impl BitOrAssign for PTEFlags"],["impl BitOrAssign for OpenFlags"]] +"os":[["impl BitOrAssign for IER"],["impl BitOrAssign for LSR"],["impl BitOrAssign for MCR"],["impl BitOrAssign for OpenFlags"],["impl BitOrAssign for MapPermission"],["impl BitOrAssign for PTEFlags"],["impl BitOrAssign for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/bit/trait.BitXor.js b/main/trait.impl/core/ops/bit/trait.BitXor.js index a62c45f2..e606a6e1 100644 --- a/main/trait.impl/core/ops/bit/trait.BitXor.js +++ b/main/trait.impl/core/ops/bit/trait.BitXor.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl BitXor for PTEFlags"],["impl BitXor for MapPermission"],["impl BitXor for MCR"],["impl BitXor for OpenFlags"],["impl BitXor for SignalFlags"],["impl BitXor for IER"],["impl BitXor for LSR"]] +"os":[["impl BitXor for IER"],["impl BitXor for LSR"],["impl BitXor for MCR"],["impl BitXor for OpenFlags"],["impl BitXor for MapPermission"],["impl BitXor for PTEFlags"],["impl BitXor for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/bit/trait.BitXorAssign.js b/main/trait.impl/core/ops/bit/trait.BitXorAssign.js index 7b4661a1..394c4bc7 100644 --- a/main/trait.impl/core/ops/bit/trait.BitXorAssign.js +++ b/main/trait.impl/core/ops/bit/trait.BitXorAssign.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl BitXorAssign for MCR"],["impl BitXorAssign for PTEFlags"],["impl BitXorAssign for MapPermission"],["impl BitXorAssign for IER"],["impl BitXorAssign for SignalFlags"],["impl BitXorAssign for OpenFlags"],["impl BitXorAssign for LSR"]] +"os":[["impl BitXorAssign for IER"],["impl BitXorAssign for LSR"],["impl BitXorAssign for MCR"],["impl BitXorAssign for OpenFlags"],["impl BitXorAssign for MapPermission"],["impl BitXorAssign for PTEFlags"],["impl BitXorAssign for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/bit/trait.Not.js b/main/trait.impl/core/ops/bit/trait.Not.js index dbdccc80..37c7923c 100644 --- a/main/trait.impl/core/ops/bit/trait.Not.js +++ b/main/trait.impl/core/ops/bit/trait.Not.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Not for IER"],["impl Not for MapPermission"],["impl Not for MCR"],["impl Not for PTEFlags"],["impl Not for SignalFlags"],["impl Not for OpenFlags"],["impl Not for LSR"]] +"os":[["impl Not for IER"],["impl Not for LSR"],["impl Not for MCR"],["impl Not for OpenFlags"],["impl Not for MapPermission"],["impl Not for PTEFlags"],["impl Not for SignalFlags"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/deref/trait.Deref.js b/main/trait.impl/core/ops/deref/trait.Deref.js index 871ad20b..e020f15e 100644 --- a/main/trait.impl/core/ops/deref/trait.Deref.js +++ b/main/trait.impl/core/ops/deref/trait.Deref.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Deref for ROOT_INODE"],["impl Deref for LISTEN_TABLE"],["impl Deref for INITPROC"],["impl Deref for UART"],["impl Deref for TIMERS"],["impl<'a, T> Deref for UPIntrRefMut<'a, T>"],["impl Deref for BLOCK_DEVICE"],["impl Deref for SOCKET_TABLE"],["impl Deref for KERNEL_SPACE"],["impl Deref for NET_DEVICE"],["impl Deref for KSTACK_ALLOCATOR"],["impl Deref for GPU_DEVICE"],["impl Deref for MOUSE_DEVICE"],["impl Deref for TASK_MANAGER"],["impl Deref for QUEUE_FRAMES"],["impl Deref for KEYBOARD_DEVICE"],["impl Deref for PID2PCB"],["impl Deref for PROCESSOR"],["impl Deref for FRAME_ALLOCATOR"],["impl Deref for INTR_MASKING_INFO"],["impl Deref for DEV_NON_BLOCKING_ACCESS"],["impl Deref for LOSE_NET_STACK"],["impl Deref for PID_ALLOCATOR"]] +"os":[["impl Deref for BLOCK_DEVICE"],["impl Deref for QUEUE_FRAMES"],["impl Deref for UART"],["impl Deref for GPU_DEVICE"],["impl Deref for KEYBOARD_DEVICE"],["impl Deref for MOUSE_DEVICE"],["impl Deref for NET_DEVICE"],["impl Deref for ROOT_INODE"],["impl Deref for FRAME_ALLOCATOR"],["impl Deref for KERNEL_SPACE"],["impl Deref for LISTEN_TABLE"],["impl Deref for SOCKET_TABLE"],["impl Deref for LOSE_NET_STACK"],["impl Deref for DEV_NON_BLOCKING_ACCESS"],["impl Deref for INTR_MASKING_INFO"],["impl Deref for KSTACK_ALLOCATOR"],["impl Deref for PID_ALLOCATOR"],["impl Deref for PID2PCB"],["impl Deref for TASK_MANAGER"],["impl Deref for PROCESSOR"],["impl Deref for INITPROC"],["impl Deref for TIMERS"],["impl<'a, T> Deref for UPIntrRefMut<'a, T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/ops/drop/trait.Drop.js b/main/trait.impl/core/ops/drop/trait.Drop.js index 56b19941..7a642fb3 100644 --- a/main/trait.impl/core/ops/drop/trait.Drop.js +++ b/main/trait.impl/core/ops/drop/trait.Drop.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl Drop for PidHandle"],["impl Drop for TaskUserRes"],["impl Drop for FrameTracker"],["impl<'a, T> Drop for UPIntrRefMut<'a, T>"],["impl Drop for UDP"],["impl Drop for KernelStack"],["impl Drop for PortFd"],["impl Drop for TCP"]] +"os":[["impl Drop for FrameTracker"],["impl Drop for PortFd"],["impl Drop for TCP"],["impl Drop for UDP"],["impl Drop for KernelStack"],["impl Drop for PidHandle"],["impl Drop for TaskUserRes"],["impl<'a, T> Drop for UPIntrRefMut<'a, T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/main/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index dbeffa3d..6dc9f873 100644 --- a/main/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/main/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl RefUnwindSafe for Stdout",1,["os::console::Stdout"]],["impl !RefUnwindSafe for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl RefUnwindSafe for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl RefUnwindSafe for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl RefUnwindSafe for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl RefUnwindSafe for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl RefUnwindSafe for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl RefUnwindSafe for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl RefUnwindSafe for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl RefUnwindSafe for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl RefUnwindSafe for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl RefUnwindSafe for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]],["impl RefUnwindSafe for UART",1,["os::drivers::chardev::UART"]],["impl RefUnwindSafe for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl !RefUnwindSafe for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl RefUnwindSafe for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl !RefUnwindSafe for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl RefUnwindSafe for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl RefUnwindSafe for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl RefUnwindSafe for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl !RefUnwindSafe for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl RefUnwindSafe for PLIC",1,["os::drivers::plic::PLIC"]],["impl RefUnwindSafe for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl !RefUnwindSafe for OSInode",1,["os::fs::inode::OSInode"]],["impl !RefUnwindSafe for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl RefUnwindSafe for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl RefUnwindSafe for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl !RefUnwindSafe for Pipe",1,["os::fs::pipe::Pipe"]],["impl RefUnwindSafe for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl !RefUnwindSafe for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl RefUnwindSafe for Stdin",1,["os::fs::stdio::Stdin"]],["impl RefUnwindSafe for Stdout",1,["os::fs::stdio::Stdout"]],["impl RefUnwindSafe for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl RefUnwindSafe for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl RefUnwindSafe for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl RefUnwindSafe for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl<T> RefUnwindSafe for SimpleRange<T>
where\n T: RefUnwindSafe,
",1,["os::mm::address::SimpleRange"]],["impl<T> RefUnwindSafe for SimpleRangeIterator<T>
where\n T: RefUnwindSafe,
",1,["os::mm::address::SimpleRangeIterator"]],["impl RefUnwindSafe for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl RefUnwindSafe for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl RefUnwindSafe for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl RefUnwindSafe for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl RefUnwindSafe for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl RefUnwindSafe for MapArea",1,["os::mm::memory_set::MapArea"]],["impl RefUnwindSafe for MapType",1,["os::mm::memory_set::MapType"]],["impl RefUnwindSafe for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl RefUnwindSafe for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl RefUnwindSafe for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl RefUnwindSafe for PageTable",1,["os::mm::page_table::PageTable"]],["impl RefUnwindSafe for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl RefUnwindSafe for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl !RefUnwindSafe for Port",1,["os::net::port_table::Port"]],["impl RefUnwindSafe for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl RefUnwindSafe for PortFd",1,["os::net::port_table::PortFd"]],["impl RefUnwindSafe for Socket",1,["os::net::socket::Socket"]],["impl RefUnwindSafe for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl RefUnwindSafe for TCP",1,["os::net::tcp::TCP"]],["impl RefUnwindSafe for UDP",1,["os::net::udp::UDP"]],["impl !RefUnwindSafe for NetStack",1,["os::net::NetStack"]],["impl RefUnwindSafe for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl !RefUnwindSafe for Condvar",1,["os::sync::condvar::Condvar"]],["impl !RefUnwindSafe for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl !RefUnwindSafe for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl !RefUnwindSafe for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl !RefUnwindSafe for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl !RefUnwindSafe for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl !RefUnwindSafe for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl<T> !RefUnwindSafe for UPSafeCellRaw<T>",1,["os::sync::up::UPSafeCellRaw"]],["impl RefUnwindSafe for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl RefUnwindSafe for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl<T> !RefUnwindSafe for UPIntrFreeCell<T>",1,["os::sync::up::UPIntrFreeCell"]],["impl<'a, T> !RefUnwindSafe for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl RefUnwindSafe for TaskContext",1,["os::task::context::TaskContext"]],["impl RefUnwindSafe for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl RefUnwindSafe for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl RefUnwindSafe for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl RefUnwindSafe for PidHandle",1,["os::task::id::PidHandle"]],["impl RefUnwindSafe for KernelStack",1,["os::task::id::KernelStack"]],["impl !RefUnwindSafe for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl !RefUnwindSafe for TaskManager",1,["os::task::manager::TaskManager"]],["impl RefUnwindSafe for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl RefUnwindSafe for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl !RefUnwindSafe for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl !RefUnwindSafe for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl !RefUnwindSafe for Processor",1,["os::task::processor::Processor"]],["impl RefUnwindSafe for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl RefUnwindSafe for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl !RefUnwindSafe for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl !RefUnwindSafe for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl RefUnwindSafe for TaskStatus",1,["os::task::task::TaskStatus"]],["impl RefUnwindSafe for INITPROC",1,["os::task::INITPROC"]],["impl !RefUnwindSafe for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl RefUnwindSafe for TIMERS",1,["os::timer::TIMERS"]],["impl RefUnwindSafe for TrapContext",1,["os::trap::context::TrapContext"]],["impl RefUnwindSafe for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]]] +"os":[["impl !RefUnwindSafe for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl !RefUnwindSafe for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl !RefUnwindSafe for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl !RefUnwindSafe for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl !RefUnwindSafe for OSInode",1,["os::fs::inode::OSInode"]],["impl !RefUnwindSafe for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl !RefUnwindSafe for Pipe",1,["os::fs::pipe::Pipe"]],["impl !RefUnwindSafe for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl !RefUnwindSafe for Port",1,["os::net::port_table::Port"]],["impl !RefUnwindSafe for NetStack",1,["os::net::NetStack"]],["impl !RefUnwindSafe for Condvar",1,["os::sync::condvar::Condvar"]],["impl !RefUnwindSafe for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl !RefUnwindSafe for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl !RefUnwindSafe for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl !RefUnwindSafe for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl !RefUnwindSafe for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl !RefUnwindSafe for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl !RefUnwindSafe for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl !RefUnwindSafe for TaskManager",1,["os::task::manager::TaskManager"]],["impl !RefUnwindSafe for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl !RefUnwindSafe for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl !RefUnwindSafe for Processor",1,["os::task::processor::Processor"]],["impl !RefUnwindSafe for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl !RefUnwindSafe for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl !RefUnwindSafe for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl RefUnwindSafe for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl RefUnwindSafe for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl RefUnwindSafe for MapType",1,["os::mm::memory_set::MapType"]],["impl RefUnwindSafe for TaskStatus",1,["os::task::task::TaskStatus"]],["impl RefUnwindSafe for Stdout",1,["os::console::Stdout"]],["impl RefUnwindSafe for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl RefUnwindSafe for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl RefUnwindSafe for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl RefUnwindSafe for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl RefUnwindSafe for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl RefUnwindSafe for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl RefUnwindSafe for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl RefUnwindSafe for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl RefUnwindSafe for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl RefUnwindSafe for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl RefUnwindSafe for UART",1,["os::drivers::chardev::UART"]],["impl RefUnwindSafe for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl RefUnwindSafe for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl RefUnwindSafe for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl RefUnwindSafe for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl RefUnwindSafe for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl RefUnwindSafe for PLIC",1,["os::drivers::plic::PLIC"]],["impl RefUnwindSafe for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl RefUnwindSafe for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl RefUnwindSafe for Stdin",1,["os::fs::stdio::Stdin"]],["impl RefUnwindSafe for Stdout",1,["os::fs::stdio::Stdout"]],["impl RefUnwindSafe for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl RefUnwindSafe for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl RefUnwindSafe for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl RefUnwindSafe for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl RefUnwindSafe for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl RefUnwindSafe for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl RefUnwindSafe for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl RefUnwindSafe for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl RefUnwindSafe for MapArea",1,["os::mm::memory_set::MapArea"]],["impl RefUnwindSafe for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl RefUnwindSafe for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl RefUnwindSafe for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl RefUnwindSafe for PageTable",1,["os::mm::page_table::PageTable"]],["impl RefUnwindSafe for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl RefUnwindSafe for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl RefUnwindSafe for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl RefUnwindSafe for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl RefUnwindSafe for PortFd",1,["os::net::port_table::PortFd"]],["impl RefUnwindSafe for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl RefUnwindSafe for Socket",1,["os::net::socket::Socket"]],["impl RefUnwindSafe for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl RefUnwindSafe for TCP",1,["os::net::tcp::TCP"]],["impl RefUnwindSafe for UDP",1,["os::net::udp::UDP"]],["impl RefUnwindSafe for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]],["impl RefUnwindSafe for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl RefUnwindSafe for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl RefUnwindSafe for TaskContext",1,["os::task::context::TaskContext"]],["impl RefUnwindSafe for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl RefUnwindSafe for KernelStack",1,["os::task::id::KernelStack"]],["impl RefUnwindSafe for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl RefUnwindSafe for PidHandle",1,["os::task::id::PidHandle"]],["impl RefUnwindSafe for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl RefUnwindSafe for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl RefUnwindSafe for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl RefUnwindSafe for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl RefUnwindSafe for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl RefUnwindSafe for INITPROC",1,["os::task::INITPROC"]],["impl RefUnwindSafe for TIMERS",1,["os::timer::TIMERS"]],["impl RefUnwindSafe for TrapContext",1,["os::trap::context::TrapContext"]],["impl<'a, T> !RefUnwindSafe for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl<T> !RefUnwindSafe for UPIntrFreeCell<T>",1,["os::sync::up::UPIntrFreeCell"]],["impl<T> !RefUnwindSafe for UPSafeCellRaw<T>",1,["os::sync::up::UPSafeCellRaw"]],["impl<T> RefUnwindSafe for SimpleRange<T>
where\n T: RefUnwindSafe,
",1,["os::mm::address::SimpleRange"]],["impl<T> RefUnwindSafe for SimpleRangeIterator<T>
where\n T: RefUnwindSafe,
",1,["os::mm::address::SimpleRangeIterator"]],["impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/main/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index c1d3bb6a..b893346b 100644 --- a/main/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/main/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl UnwindSafe for Stdout",1,["os::console::Stdout"]],["impl !UnwindSafe for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl UnwindSafe for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl UnwindSafe for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl UnwindSafe for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl UnwindSafe for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl UnwindSafe for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl UnwindSafe for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl UnwindSafe for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl UnwindSafe for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl UnwindSafe for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl UnwindSafe for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]],["impl UnwindSafe for UART",1,["os::drivers::chardev::UART"]],["impl UnwindSafe for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl !UnwindSafe for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl !UnwindSafe for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl !UnwindSafe for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl UnwindSafe for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl UnwindSafe for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl UnwindSafe for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl !UnwindSafe for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl UnwindSafe for PLIC",1,["os::drivers::plic::PLIC"]],["impl UnwindSafe for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl !UnwindSafe for OSInode",1,["os::fs::inode::OSInode"]],["impl !UnwindSafe for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl UnwindSafe for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl UnwindSafe for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl !UnwindSafe for Pipe",1,["os::fs::pipe::Pipe"]],["impl UnwindSafe for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl !UnwindSafe for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl UnwindSafe for Stdin",1,["os::fs::stdio::Stdin"]],["impl UnwindSafe for Stdout",1,["os::fs::stdio::Stdout"]],["impl UnwindSafe for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl UnwindSafe for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl UnwindSafe for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl UnwindSafe for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl<T> UnwindSafe for SimpleRange<T>
where\n T: UnwindSafe,
",1,["os::mm::address::SimpleRange"]],["impl<T> UnwindSafe for SimpleRangeIterator<T>
where\n T: UnwindSafe,
",1,["os::mm::address::SimpleRangeIterator"]],["impl UnwindSafe for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl UnwindSafe for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl UnwindSafe for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl UnwindSafe for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl UnwindSafe for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl UnwindSafe for MapArea",1,["os::mm::memory_set::MapArea"]],["impl UnwindSafe for MapType",1,["os::mm::memory_set::MapType"]],["impl UnwindSafe for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl UnwindSafe for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl UnwindSafe for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl UnwindSafe for PageTable",1,["os::mm::page_table::PageTable"]],["impl !UnwindSafe for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl !UnwindSafe for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl !UnwindSafe for Port",1,["os::net::port_table::Port"]],["impl UnwindSafe for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl UnwindSafe for PortFd",1,["os::net::port_table::PortFd"]],["impl UnwindSafe for Socket",1,["os::net::socket::Socket"]],["impl UnwindSafe for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl UnwindSafe for TCP",1,["os::net::tcp::TCP"]],["impl UnwindSafe for UDP",1,["os::net::udp::UDP"]],["impl UnwindSafe for NetStack",1,["os::net::NetStack"]],["impl UnwindSafe for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl !UnwindSafe for Condvar",1,["os::sync::condvar::Condvar"]],["impl !UnwindSafe for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl UnwindSafe for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl !UnwindSafe for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl !UnwindSafe for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl !UnwindSafe for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl !UnwindSafe for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl<T> UnwindSafe for UPSafeCellRaw<T>
where\n T: UnwindSafe,
",1,["os::sync::up::UPSafeCellRaw"]],["impl UnwindSafe for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl UnwindSafe for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl<T> UnwindSafe for UPIntrFreeCell<T>
where\n T: UnwindSafe,
",1,["os::sync::up::UPIntrFreeCell"]],["impl<'a, T> !UnwindSafe for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl UnwindSafe for TaskContext",1,["os::task::context::TaskContext"]],["impl UnwindSafe for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl UnwindSafe for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl UnwindSafe for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl UnwindSafe for PidHandle",1,["os::task::id::PidHandle"]],["impl UnwindSafe for KernelStack",1,["os::task::id::KernelStack"]],["impl !UnwindSafe for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl !UnwindSafe for TaskManager",1,["os::task::manager::TaskManager"]],["impl UnwindSafe for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl UnwindSafe for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl !UnwindSafe for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl !UnwindSafe for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl !UnwindSafe for Processor",1,["os::task::processor::Processor"]],["impl UnwindSafe for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl UnwindSafe for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl !UnwindSafe for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl !UnwindSafe for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl UnwindSafe for TaskStatus",1,["os::task::task::TaskStatus"]],["impl UnwindSafe for INITPROC",1,["os::task::INITPROC"]],["impl !UnwindSafe for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl UnwindSafe for TIMERS",1,["os::timer::TIMERS"]],["impl UnwindSafe for TrapContext",1,["os::trap::context::TrapContext"]],["impl UnwindSafe for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]]] +"os":[["impl !UnwindSafe for VirtIOBlock",1,["os::drivers::block::virtio_blk::VirtIOBlock"]],["impl !UnwindSafe for VirtIOGpuWrapper",1,["os::drivers::gpu::VirtIOGpuWrapper"]],["impl !UnwindSafe for VirtIOInputInner",1,["os::drivers::input::VirtIOInputInner"]],["impl !UnwindSafe for VirtIOInputWrapper",1,["os::drivers::input::VirtIOInputWrapper"]],["impl !UnwindSafe for VirtIONetWrapper",1,["os::drivers::net::VirtIONetWrapper"]],["impl !UnwindSafe for OSInode",1,["os::fs::inode::OSInode"]],["impl !UnwindSafe for OSInodeInner",1,["os::fs::inode::OSInodeInner"]],["impl !UnwindSafe for Pipe",1,["os::fs::pipe::Pipe"]],["impl !UnwindSafe for PipeRingBuffer",1,["os::fs::pipe::PipeRingBuffer"]],["impl !UnwindSafe for UserBuffer",1,["os::mm::page_table::UserBuffer"]],["impl !UnwindSafe for UserBufferIterator",1,["os::mm::page_table::UserBufferIterator"]],["impl !UnwindSafe for Port",1,["os::net::port_table::Port"]],["impl !UnwindSafe for Condvar",1,["os::sync::condvar::Condvar"]],["impl !UnwindSafe for CondvarInner",1,["os::sync::condvar::CondvarInner"]],["impl !UnwindSafe for MutexBlocking",1,["os::sync::mutex::MutexBlocking"]],["impl !UnwindSafe for MutexBlockingInner",1,["os::sync::mutex::MutexBlockingInner"]],["impl !UnwindSafe for Semaphore",1,["os::sync::semaphore::Semaphore"]],["impl !UnwindSafe for SemaphoreInner",1,["os::sync::semaphore::SemaphoreInner"]],["impl !UnwindSafe for TaskUserRes",1,["os::task::id::TaskUserRes"]],["impl !UnwindSafe for TaskManager",1,["os::task::manager::TaskManager"]],["impl !UnwindSafe for ProcessControlBlock",1,["os::task::process::ProcessControlBlock"]],["impl !UnwindSafe for ProcessControlBlockInner",1,["os::task::process::ProcessControlBlockInner"]],["impl !UnwindSafe for Processor",1,["os::task::processor::Processor"]],["impl !UnwindSafe for TaskControlBlock",1,["os::task::task::TaskControlBlock"]],["impl !UnwindSafe for TaskControlBlockInner",1,["os::task::task::TaskControlBlockInner"]],["impl !UnwindSafe for TimerCondVar",1,["os::timer::TimerCondVar"]],["impl UnwindSafe for IntrTargetPriority",1,["os::drivers::plic::IntrTargetPriority"]],["impl UnwindSafe for RingBufferStatus",1,["os::fs::pipe::RingBufferStatus"]],["impl UnwindSafe for MapType",1,["os::mm::memory_set::MapType"]],["impl UnwindSafe for TaskStatus",1,["os::task::task::TaskStatus"]],["impl UnwindSafe for Stdout",1,["os::console::Stdout"]],["impl UnwindSafe for BLOCK_DEVICE",1,["os::drivers::block::BLOCK_DEVICE"]],["impl UnwindSafe for QUEUE_FRAMES",1,["os::drivers::bus::virtio::QUEUE_FRAMES"]],["impl UnwindSafe for VirtioHal",1,["os::drivers::bus::virtio::VirtioHal"]],["impl UnwindSafe for IER",1,["os::drivers::chardev::ns16550a::IER"]],["impl UnwindSafe for LSR",1,["os::drivers::chardev::ns16550a::LSR"]],["impl UnwindSafe for MCR",1,["os::drivers::chardev::ns16550a::MCR"]],["impl UnwindSafe for NS16550aInner",1,["os::drivers::chardev::ns16550a::NS16550aInner"]],["impl UnwindSafe for NS16550aRaw",1,["os::drivers::chardev::ns16550a::NS16550aRaw"]],["impl UnwindSafe for ReadWithoutDLAB",1,["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]],["impl UnwindSafe for WriteWithoutDLAB",1,["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]],["impl UnwindSafe for UART",1,["os::drivers::chardev::UART"]],["impl UnwindSafe for GPU_DEVICE",1,["os::drivers::gpu::GPU_DEVICE"]],["impl UnwindSafe for KEYBOARD_DEVICE",1,["os::drivers::input::KEYBOARD_DEVICE"]],["impl UnwindSafe for MOUSE_DEVICE",1,["os::drivers::input::MOUSE_DEVICE"]],["impl UnwindSafe for NET_DEVICE",1,["os::drivers::net::NET_DEVICE"]],["impl UnwindSafe for PLIC",1,["os::drivers::plic::PLIC"]],["impl UnwindSafe for OpenFlags",1,["os::fs::inode::OpenFlags"]],["impl UnwindSafe for ROOT_INODE",1,["os::fs::inode::ROOT_INODE"]],["impl UnwindSafe for Stdin",1,["os::fs::stdio::Stdin"]],["impl UnwindSafe for Stdout",1,["os::fs::stdio::Stdout"]],["impl UnwindSafe for PhysAddr",1,["os::mm::address::PhysAddr"]],["impl UnwindSafe for PhysPageNum",1,["os::mm::address::PhysPageNum"]],["impl UnwindSafe for VirtAddr",1,["os::mm::address::VirtAddr"]],["impl UnwindSafe for VirtPageNum",1,["os::mm::address::VirtPageNum"]],["impl UnwindSafe for FRAME_ALLOCATOR",1,["os::mm::frame_allocator::FRAME_ALLOCATOR"]],["impl UnwindSafe for FrameTracker",1,["os::mm::frame_allocator::FrameTracker"]],["impl UnwindSafe for StackFrameAllocator",1,["os::mm::frame_allocator::StackFrameAllocator"]],["impl UnwindSafe for KERNEL_SPACE",1,["os::mm::memory_set::KERNEL_SPACE"]],["impl UnwindSafe for MapArea",1,["os::mm::memory_set::MapArea"]],["impl UnwindSafe for MapPermission",1,["os::mm::memory_set::MapPermission"]],["impl UnwindSafe for MemorySet",1,["os::mm::memory_set::MemorySet"]],["impl UnwindSafe for PTEFlags",1,["os::mm::page_table::PTEFlags"]],["impl UnwindSafe for PageTable",1,["os::mm::page_table::PageTable"]],["impl UnwindSafe for PageTableEntry",1,["os::mm::page_table::PageTableEntry"]],["impl UnwindSafe for LISTEN_TABLE",1,["os::net::port_table::LISTEN_TABLE"]],["impl UnwindSafe for PortFd",1,["os::net::port_table::PortFd"]],["impl UnwindSafe for SOCKET_TABLE",1,["os::net::socket::SOCKET_TABLE"]],["impl UnwindSafe for Socket",1,["os::net::socket::Socket"]],["impl UnwindSafe for LOSE_NET_STACK",1,["os::net::LOSE_NET_STACK"]],["impl UnwindSafe for NetStack",1,["os::net::NetStack"]],["impl UnwindSafe for TCP",1,["os::net::tcp::TCP"]],["impl UnwindSafe for UDP",1,["os::net::udp::UDP"]],["impl UnwindSafe for DEV_NON_BLOCKING_ACCESS",1,["os::DEV_NON_BLOCKING_ACCESS"]],["impl UnwindSafe for MutexSpin",1,["os::sync::mutex::MutexSpin"]],["impl UnwindSafe for INTR_MASKING_INFO",1,["os::sync::up::INTR_MASKING_INFO"]],["impl UnwindSafe for IntrMaskingInfo",1,["os::sync::up::IntrMaskingInfo"]],["impl UnwindSafe for TaskContext",1,["os::task::context::TaskContext"]],["impl UnwindSafe for KSTACK_ALLOCATOR",1,["os::task::id::KSTACK_ALLOCATOR"]],["impl UnwindSafe for KernelStack",1,["os::task::id::KernelStack"]],["impl UnwindSafe for PID_ALLOCATOR",1,["os::task::id::PID_ALLOCATOR"]],["impl UnwindSafe for PidHandle",1,["os::task::id::PidHandle"]],["impl UnwindSafe for RecycleAllocator",1,["os::task::id::RecycleAllocator"]],["impl UnwindSafe for PID2PCB",1,["os::task::manager::PID2PCB"]],["impl UnwindSafe for TASK_MANAGER",1,["os::task::manager::TASK_MANAGER"]],["impl UnwindSafe for PROCESSOR",1,["os::task::processor::PROCESSOR"]],["impl UnwindSafe for SignalFlags",1,["os::task::signal::SignalFlags"]],["impl UnwindSafe for INITPROC",1,["os::task::INITPROC"]],["impl UnwindSafe for TIMERS",1,["os::timer::TIMERS"]],["impl UnwindSafe for TrapContext",1,["os::trap::context::TrapContext"]],["impl<'a, T> !UnwindSafe for UPIntrRefMut<'a, T>",1,["os::sync::up::UPIntrRefMut"]],["impl<T> UnwindSafe for SimpleRange<T>
where\n T: UnwindSafe,
",1,["os::mm::address::SimpleRange"]],["impl<T> UnwindSafe for SimpleRangeIterator<T>
where\n T: UnwindSafe,
",1,["os::mm::address::SimpleRangeIterator"]],["impl<T> UnwindSafe for UPIntrFreeCell<T>
where\n T: UnwindSafe,
",1,["os::sync::up::UPIntrFreeCell"]],["impl<T> UnwindSafe for UPSafeCellRaw<T>
where\n T: UnwindSafe,
",1,["os::sync::up::UPSafeCellRaw"]],["impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>",1,["os::drivers::chardev::ns16550a::NS16550a"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/lazy_static/trait.LazyStatic.js b/main/trait.impl/lazy_static/trait.LazyStatic.js index dce006de..0e5212da 100644 --- a/main/trait.impl/lazy_static/trait.LazyStatic.js +++ b/main/trait.impl/lazy_static/trait.LazyStatic.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"os":[["impl LazyStatic for DEV_NON_BLOCKING_ACCESS"],["impl LazyStatic for LISTEN_TABLE"],["impl LazyStatic for QUEUE_FRAMES"],["impl LazyStatic for MOUSE_DEVICE"],["impl LazyStatic for PID2PCB"],["impl LazyStatic for ROOT_INODE"],["impl LazyStatic for PROCESSOR"],["impl LazyStatic for KSTACK_ALLOCATOR"],["impl LazyStatic for KEYBOARD_DEVICE"],["impl LazyStatic for TASK_MANAGER"],["impl LazyStatic for GPU_DEVICE"],["impl LazyStatic for INITPROC"],["impl LazyStatic for UART"],["impl LazyStatic for SOCKET_TABLE"],["impl LazyStatic for PID_ALLOCATOR"],["impl LazyStatic for INTR_MASKING_INFO"],["impl LazyStatic for BLOCK_DEVICE"],["impl LazyStatic for KERNEL_SPACE"],["impl LazyStatic for TIMERS"],["impl LazyStatic for NET_DEVICE"],["impl LazyStatic for LOSE_NET_STACK"],["impl LazyStatic for FRAME_ALLOCATOR"]] +"os":[["impl LazyStatic for BLOCK_DEVICE"],["impl LazyStatic for QUEUE_FRAMES"],["impl LazyStatic for UART"],["impl LazyStatic for GPU_DEVICE"],["impl LazyStatic for KEYBOARD_DEVICE"],["impl LazyStatic for MOUSE_DEVICE"],["impl LazyStatic for NET_DEVICE"],["impl LazyStatic for ROOT_INODE"],["impl LazyStatic for FRAME_ALLOCATOR"],["impl LazyStatic for KERNEL_SPACE"],["impl LazyStatic for LISTEN_TABLE"],["impl LazyStatic for SOCKET_TABLE"],["impl LazyStatic for LOSE_NET_STACK"],["impl LazyStatic for DEV_NON_BLOCKING_ACCESS"],["impl LazyStatic for INTR_MASKING_INFO"],["impl LazyStatic for KSTACK_ALLOCATOR"],["impl LazyStatic for PID_ALLOCATOR"],["impl LazyStatic for PID2PCB"],["impl LazyStatic for TASK_MANAGER"],["impl LazyStatic for PROCESSOR"],["impl LazyStatic for INITPROC"],["impl LazyStatic for TIMERS"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/type.impl/os/drivers/block/virtio_blk/struct.VirtIOBlock.js b/main/type.impl/os/drivers/block/virtio_blk/struct.VirtIOBlock.js index 62c8d8e9..12fd9820 100644 --- a/main/type.impl/os/drivers/block/virtio_blk/struct.VirtIOBlock.js +++ b/main/type.impl/os/drivers/block/virtio_blk/struct.VirtIOBlock.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"os":[["
source§

impl VirtIOBlock

source

pub fn new() -> Self

",0,"os::board::BlockDeviceImpl"],["
source§

impl BlockDevice for VirtIOBlock

source§

fn read_block(&self, block_id: usize, buf: &mut [u8])

source§

fn write_block(&self, block_id: usize, buf: &[u8])

source§

fn handle_irq(&self)

","BlockDevice","os::board::BlockDeviceImpl"]] +"os":[["
source§

impl BlockDevice for VirtIOBlock

source§

fn read_block(&self, block_id: usize, buf: &mut [u8])

source§

fn write_block(&self, block_id: usize, buf: &[u8])

source§

fn handle_irq(&self)

","BlockDevice","os::board::BlockDeviceImpl"],["
source§

impl VirtIOBlock

source

pub fn new() -> Self

",0,"os::board::BlockDeviceImpl"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/main/type.impl/os/drivers/chardev/ns16550a/struct.NS16550a.js b/main/type.impl/os/drivers/chardev/ns16550a/struct.NS16550a.js index e8a64681..4292b575 100644 --- a/main/type.impl/os/drivers/chardev/ns16550a/struct.NS16550a.js +++ b/main/type.impl/os/drivers/chardev/ns16550a/struct.NS16550a.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"os":[["
source§

impl<const BASE_ADDR: usize> NS16550a<BASE_ADDR>

source

pub fn new() -> Self

source

pub fn read_buffer_is_empty(&self) -> bool

",0,"os::board::CharDeviceImpl"],["
source§

impl<const BASE_ADDR: usize> CharDevice for NS16550a<BASE_ADDR>

source§

fn init(&self)

source§

fn read(&self) -> u8

source§

fn write(&self, ch: u8)

source§

fn handle_irq(&self)

","CharDevice","os::board::CharDeviceImpl"]] +"os":[["
source§

impl<const BASE_ADDR: usize> CharDevice for NS16550a<BASE_ADDR>

source§

fn init(&self)

source§

fn read(&self) -> u8

source§

fn write(&self, ch: u8)

source§

fn handle_irq(&self)

","CharDevice","os::board::CharDeviceImpl"],["
source§

impl<const BASE_ADDR: usize> NS16550a<BASE_ADDR>

source

pub fn new() -> Self

source

pub fn read_buffer_is_empty(&self) -> bool

",0,"os::board::CharDeviceImpl"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/main/type.impl/os/mm/address/struct.SimpleRange.js b/main/type.impl/os/mm/address/struct.SimpleRange.js index 4bd258d7..f5767bcf 100644 --- a/main/type.impl/os/mm/address/struct.SimpleRange.js +++ b/main/type.impl/os/mm/address/struct.SimpleRange.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"os":[["
source§

impl<T> SimpleRange<T>

source

pub fn new(start: T, end: T) -> Self

source

pub fn get_start(&self) -> T

source

pub fn get_end(&self) -> T

",0,"os::mm::address::VPNRange"],["
source§

impl<T> Copy for SimpleRange<T>

","Copy","os::mm::address::VPNRange"],["
source§

impl<T> IntoIterator for SimpleRange<T>

§

type Item = T

The type of the elements being iterated over.
§

type IntoIter = SimpleRangeIterator<T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
","IntoIterator","os::mm::address::VPNRange"],["
source§

impl<T> Clone for SimpleRange<T>

source§

fn clone(&self) -> SimpleRange<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","os::mm::address::VPNRange"]] +"os":[["
source§

impl<T> Clone for SimpleRange<T>

source§

fn clone(&self) -> SimpleRange<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","os::mm::address::VPNRange"],["
source§

impl<T> IntoIterator for SimpleRange<T>

§

type Item = T

The type of the elements being iterated over.
§

type IntoIter = SimpleRangeIterator<T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
","IntoIterator","os::mm::address::VPNRange"],["
source§

impl<T> SimpleRange<T>

source

pub fn new(start: T, end: T) -> Self

source

pub fn get_start(&self) -> T

source

pub fn get_end(&self) -> T

",0,"os::mm::address::VPNRange"],["
source§

impl<T> Copy for SimpleRange<T>

","Copy","os::mm::address::VPNRange"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/main/type.impl/os/mm/frame_allocator/struct.StackFrameAllocator.js b/main/type.impl/os/mm/frame_allocator/struct.StackFrameAllocator.js index db4fe08e..8ae718b3 100644 --- a/main/type.impl/os/mm/frame_allocator/struct.StackFrameAllocator.js +++ b/main/type.impl/os/mm/frame_allocator/struct.StackFrameAllocator.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"os":[["
source§

impl StackFrameAllocator

source

pub fn init(&mut self, l: PhysPageNum, r: PhysPageNum)

",0,"os::mm::frame_allocator::FrameAllocatorImpl"],["
source§

impl FrameAllocator for StackFrameAllocator

source§

fn new() -> Self

source§

fn alloc(&mut self) -> Option<PhysPageNum>

source§

fn alloc_more(&mut self, pages: usize) -> Option<Vec<PhysPageNum>>

source§

fn dealloc(&mut self, ppn: PhysPageNum)

","FrameAllocator","os::mm::frame_allocator::FrameAllocatorImpl"]] +"os":[["
source§

impl FrameAllocator for StackFrameAllocator

source§

fn new() -> Self

source§

fn alloc(&mut self) -> Option<PhysPageNum>

source§

fn alloc_more(&mut self, pages: usize) -> Option<Vec<PhysPageNum>>

source§

fn dealloc(&mut self, ppn: PhysPageNum)

","FrameAllocator","os::mm::frame_allocator::FrameAllocatorImpl"],["
source§

impl StackFrameAllocator

source

pub fn init(&mut self, l: PhysPageNum, r: PhysPageNum)

",0,"os::mm::frame_allocator::FrameAllocatorImpl"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file