pub struct VecList { /* private fields */ }Expand description
Baseline eager list backend backed by a shared slice of values.
§Examples
use sim_kernel::VecList;
let empty = VecList::from_vec(Vec::new());
assert!(empty.as_slice().is_empty());Implementations§
Trait Implementations§
Source§impl ListValue for VecList
impl ListValue for VecList
Source§fn car(&self, _cx: &mut Cx) -> Result<Option<Value>>
fn car(&self, _cx: &mut Cx) -> Result<Option<Value>>
The first element, or
Ok(None) when empty.Source§fn cdr(&self, cx: &mut Cx) -> Result<Option<Value>>
fn cdr(&self, cx: &mut Cx) -> Result<Option<Value>>
The tail list after the first element, or
Ok(None) when empty.Source§fn len(&self, _cx: &mut Cx) -> Result<LengthResult>
fn len(&self, _cx: &mut Cx) -> Result<LengthResult>
The length, finite or
LengthResult::Unknown for endless lists.Source§fn len_cmp(&self, _cx: &mut Cx, n: usize) -> Result<Ordering>
fn len_cmp(&self, _cx: &mut Cx, n: usize) -> Result<Ordering>
Compares the spine length against
n without fully forcing the list.Source§fn get(&self, _cx: &mut Cx, index: usize) -> Result<Option<Value>>
fn get(&self, _cx: &mut Cx, index: usize) -> Result<Option<Value>>
The element at
index, or Ok(None) when out of range.Source§fn for_each(
&self,
_cx: &mut Cx,
limit: Option<usize>,
visit: &mut dyn FnMut(&Value),
) -> Result<()>
fn for_each( &self, _cx: &mut Cx, limit: Option<usize>, visit: &mut dyn FnMut(&Value), ) -> Result<()>
Visits up to
limit elements in order, walking the list spine.Source§fn to_vec(&self, _cx: &mut Cx, limit: Option<usize>) -> Result<Vec<Value>>
fn to_vec(&self, _cx: &mut Cx, limit: Option<usize>) -> Result<Vec<Value>>
Collects up to
limit elements into a vector.Source§impl Object for VecList
impl Object for VecList
Source§fn display(&self, _cx: &mut Cx) -> Result<String>
fn display(&self, _cx: &mut Cx) -> Result<String>
Render the object as a human-readable display string.
Source§fn header(&self) -> &ObjectHeader
fn header(&self) -> &ObjectHeader
Identity and trust header for the object; defaults to the shared
anonymous header.
Source§fn op(&self, _key: &OpKey) -> Option<&dyn Op>
fn op(&self, _key: &OpKey) -> Option<&dyn Op>
Resolve the operation registered under
key, if any.Source§impl ObjectCompat for VecList
impl ObjectCompat for VecList
Source§fn class(&self, cx: &mut Cx) -> Result<ClassRef>
fn class(&self, cx: &mut Cx) -> Result<ClassRef>
Class object this value belongs to; defaults to nil.
Source§fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
Expression form of the object; defaults to an opaque extension node.
Source§fn as_callable(&self) -> Option<&dyn Callable>
fn as_callable(&self) -> Option<&dyn Callable>
Callable view, if the object can be invoked.
Source§fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
Object-encoder view, if the object encodes other objects.
Source§fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
Read-constructor view, if the object decodes data forms.
Source§fn as_number_domain(&self) -> Option<&dyn NumberDomain>
fn as_number_domain(&self) -> Option<&dyn NumberDomain>
Number-domain view, if the object is a number domain.
Source§fn as_number_value(&self) -> Option<&dyn NumberValue>
fn as_number_value(&self) -> Option<&dyn NumberValue>
Number-value view, if the object is a domain number.
Source§fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
Eval-fabric view, if the object is a distributed eval surface.
Source§fn as_sequence(&self) -> Option<&dyn Sequence>
fn as_sequence(&self) -> Option<&dyn Sequence>
Sequence view, if the object is a sequence.
Source§fn as_table_impl(&self) -> Option<&dyn Table>
fn as_table_impl(&self) -> Option<&dyn Table>
Table-implementation view, if the object is a table.
Auto Trait Implementations§
impl !RefUnwindSafe for VecList
impl !UnwindSafe for VecList
impl Freeze for VecList
impl Send for VecList
impl Sync for VecList
impl Unpin for VecList
impl UnsafeUnpin for VecList
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more