treams_core/smatrix/
saved.rs1use super::StoredBlock;
7pub(super) use crate::saved::{
8 invalid, product, read_complex, read_f64, read_matrix, total, write_matrix,
9};
10use crate::{
11 Result,
12 saved::{Reader, Writer},
13};
14
15pub(super) fn write_stored(writer: &mut Writer, block: &StoredBlock) {
16 writer.byte(u8::from(block.row_major));
17 write_matrix(writer, &block.values);
18}
19
20pub(super) fn read_stored(reader: &mut Reader<'_>, n: usize) -> Result<StoredBlock> {
21 let row_major = match reader.byte()? {
22 0 => false,
23 1 => true,
24 _ => return Err(invalid()),
25 };
26 Ok(StoredBlock {
27 values: read_matrix(reader, n, n)?,
28 row_major,
29 })
30}