Converting between things in Rust
2021-08-08
Convert Result to Option: use ok().
let opt = res.ok();
Convert Option to Result: use ok_or().
let res = opt.ok_or("oh no");
Convert bool to Option: use then_some().
let res = boo.then_some(MyObject {});
Convert bool to Result: use then_some() and ok_or().
let res = boo.then_some(MyObject {}).ok_or(MyError {})
Convert Result to bool: use is_ok().
let boo = res.is_ok();
Convert Option to bool: use is_some() and is_none().
let is_some: bool = opt.is_some(); let is_none: bool = opt.is_none();
Convert str to String: use to_string().
let s: String = "str".to_string();
Convert String to number (f64, i32, etc): use String::parse.
let num = s.parse::<f64>()?;
1 ndarray conversions
Convert ndarray::ArrayView to ndarray::Array: use .to_owned().
Convert &[f64] to ndarray::ArrayView: use ArrayView3::from_shape.
let arr: ndarray::Array3<f64> = ArrayView3::from_shape((3, height, width), slice)?.to_owned();
2 nalgebra conversions
Convert &[f64] to na::DMatrixSlice: use from_slice_with_strides