use iqdb_types::{IqdbError, Vector, VectorRef};
fn main() -> Result<(), IqdbError> {
let v = Vector::new(vec![0.1, 0.2, 0.3])?;
println!("dim = {}, components = {:?}", v.dim(), v.as_slice());
assert_eq!(
Vector::new(Vec::new()).unwrap_err(),
IqdbError::InvalidVector
);
assert_eq!(
Vector::new(vec![1.0, f32::NAN]).unwrap_err(),
IqdbError::InvalidVector,
);
let w: Vector = vec![1.0, 0.0, 0.0].try_into()?;
println!("w dim = {}", w.dim());
let buf = w.into_inner();
println!("reclaimed {} components", buf.len());
let query = [0.5_f32, 0.5, 0.0];
let r = VectorRef::from(&query[..]);
println!("query dim = {}, first = {}", r.dim(), r.as_slice()[0]);
Ok(())
}