use array_format::{ArrayFile, FileConfig, NoCompression};
use ndarray::Array;
#[tokio::main]
async fn main() {
let mut file = ArrayFile::create_memory(FileConfig::new(NoCompression))
.await
.unwrap();
file.define_array::<i32>(
"signal",
vec!["t".into()],
vec![12],
Some(vec![4]), None,
)
.unwrap();
let first = Array::from_vec(vec![1i32, 2, 3, 4]).into_dyn();
file.write_array("signal", vec![0], first.view())
.await
.unwrap();
let patch = Array::from_vec(vec![99i32, 100]).into_dyn();
file.write_array("signal", vec![5], patch.view())
.await
.unwrap();
file.flush().await.unwrap();
let full = file
.read_array::<i32>("signal", vec![], vec![])
.await
.unwrap();
println!("full signal = {:?}", full.as_slice().unwrap());
let sub = file
.read_array::<i32>("signal", vec![4], vec![5])
.await
.unwrap();
println!("signal[4..9] = {:?}", sub.as_slice().unwrap());
assert_eq!(sub.as_slice().unwrap(), [0, 99, 100, 0, 0]);
}