# Update CSV Binary Matrix This module contains the update logic for [`CSVBinaryMatrix`]. [`CSVBinaryMatrix`]: crate::matrix::CSVBinaryMatrix Because of the CSV format, extend with rows is trivial (O(1)) while append columns is more complex (in the number of ones in the resulting matrix). ## Examples ### Extend with rows ```rust use csvbinmatrix::prelude::CSVBinaryMatrix; let mut matrix = CSVBinaryMatrix::try_from(&[ [0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1], ]).unwrap(); let extension = CSVBinaryMatrix::try_from(&[[0, 1, 0]]).unwrap(); match matrix.extend_with_rows(extension) { Ok(()) => (), Err(err) => panic!("[ERROR] {err}"), } assert_eq!( matrix, CSVBinaryMatrix::try_from(&[ [0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1], [0, 1, 0] ]).unwrap() ); ``` ### Extend with columns ```rust use csvbinmatrix::prelude::CSVBinaryMatrix; let mut matrix = CSVBinaryMatrix::try_from(&[ [0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1], ]).unwrap(); let extension = CSVBinaryMatrix::try_from(&[[1], [1], [1], [1]]).unwrap(); match matrix.extend_with_columns(extension) { Ok(()) => (), Err(err) => panic!("[ERROR] {err}"), } assert_eq!( matrix, CSVBinaryMatrix::try_from(&[ [0, 0, 0, 1], [0, 0, 1, 1], [0, 1, 1, 1], [1, 1, 1, 1], ]).unwrap() ); ```