Initial node implementation #4
13
src/cell.rs
Normal file
13
src/cell.rs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
use core::cell::Cell;
|
||||||
|
|
||||||
|
/// Provides a view only reference to a [Cell].
|
||||||
|
/// Useful alternative to `&Cell` when an API wants to control where a [Cell]s value can be set.
|
||||||
|
#[derive(Copy, Clone)]
|
||||||
|
pub struct CellView<'a, T: Copy>(&'a Cell<T>);
|
||||||
|
|
||||||
|
impl<'a, T: Copy> CellView<'a, T> {
|
||||||
|
#[inline]
|
||||||
|
pub fn get(self) -> T {
|
||||||
|
self.0.get()
|
||||||
|
}
|
||||||
|
}
|
14
src/lib.rs
14
src/lib.rs
@ -1,15 +1,3 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
|
|
||||||
use core::cell::Cell;
|
mod cell;
|
||||||
|
|
||||||
/// Provides a view only reference to a [Cell].
|
|
||||||
/// Useful alternative to `&Cell` when an API wants to control where a [Cell]s value can be set.
|
|
||||||
#[derive(Copy, Clone)]
|
|
||||||
pub struct CellView<'a, T: Copy>(&'a Cell<T>);
|
|
||||||
|
|
||||||
impl<'a, T: Copy> CellView<'a, T> {
|
|
||||||
#[inline]
|
|
||||||
pub fn get(self) -> T {
|
|
||||||
self.0.get()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user