rusty_mos::utils::linked_list

Struct LinkList

Source
pub struct LinkList<T: Copy> {
    pub head: *mut LinkNode<T>,
}
Expand description

The head struct of the LinkList

See also: LinkNode

§Generics

The type T indicates the data stored in the link list.

Fields§

§head: *mut LinkNode<T>

Pointing to the first node of this link list. The list is empty if and only if the head is null.

Implementations§

Source§

impl<T: Copy> LinkList<T>

Source

pub const fn new() -> LinkList<T>

Create an empty link list with its head null.

Source

pub fn empty(&self) -> bool

Judge whether this list is empty.

Source

pub fn insert_head(&mut self, item: *mut LinkNode<T>)

Insert a node to the head of the list

§Safety

The parameter item SHALL be mutably-visitable!

Source

pub fn pop_head(&mut self) -> Option<*mut LinkNode<T>>

Get the first node of this list and removce it

The return value will be None is the list is empty.

§Safety

All things in the list SHALL be valid!

Source

pub fn remove(item: *mut LinkNode<T>)

Remove a specified node from the list contains this node.

§Safety

The parameter item SHALL be mutably-visitable and SHALL be in an valid link list!

Trait Implementations§

Source§

impl<T: Clone + Copy> Clone for LinkList<T>

Source§

fn clone(&self) -> LinkList<T>

Returns a copy of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl<T: Copy> Default for LinkList<T>

Source§

fn default() -> Self

Constructor for the default.

Source§

impl<T: Copy + Copy> Copy for LinkList<T>

Auto Trait Implementations§

§

impl<T> Freeze for LinkList<T>

§

impl<T> RefUnwindSafe for LinkList<T>
where T: RefUnwindSafe,

§

impl<T> !Send for LinkList<T>

§

impl<T> !Sync for LinkList<T>

§

impl<T> Unpin for LinkList<T>

§

impl<T> UnwindSafe for LinkList<T>
where T: RefUnwindSafe,

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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.
§

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

Performs the conversion.