Skip to main content

persistent_vector

Function persistent_vector 

Source
pub fn persistent_vector(cx: &mut Cx, items: Vec<Value>) -> Result<Value>
Expand description

Construct a PersistentVector as a runtime Value.

ยงExamples

use std::sync::Arc;
use sim_kernel::{Cx, DefaultFactory, NoopEvalPolicy, Symbol};
use sim_lib_sequence::{persistent_vector, persistent_vector_push};

let mut cx = Cx::new(Arc::new(NoopEvalPolicy), Arc::new(DefaultFactory));
let one = cx.factory().number_literal(Symbol::qualified("test", "u64"), "1".into())?;
let two = cx.factory().number_literal(Symbol::qualified("test", "u64"), "2".into())?;

let base = persistent_vector(&mut cx, vec![one])?;
// Push returns a new vector; `base` keeps its single element.
let _grown = persistent_vector_push(&mut cx, &base, two)?;