fix: correct from function

This commit is contained in:
Zhongheng Liu 2025-01-23 19:25:44 +02:00
commit 1fdf5e281b
Signed by: steven
GPG key ID: 805A28B071DAD84B
3 changed files with 11 additions and 9 deletions

2
Cargo.lock generated
View file

@ -4,4 +4,4 @@ version = 3
[[package]] [[package]]
name = "matrix" name = "matrix"
version = "0.1.5" version = "0.1.7"

View file

@ -1,6 +1,6 @@
[package] [package]
name = "matrix" name = "matrix"
version = "0.1.6" version = "0.1.7"
edition = "2021" edition = "2021"
authors = ["Zhongheng Liu <z.liu@outlook.com.gr>"] authors = ["Zhongheng Liu <z.liu@outlook.com.gr>"]
homepage = "https://stvnliu.gitlab.io" homepage = "https://stvnliu.gitlab.io"

View file

@ -11,17 +11,21 @@
//! ``` //! ```
//! TODO:: Create matrix multiplication method //! TODO:: Create matrix multiplication method
use std::{fmt::Display, ops::{Add, Mul, Sub}, str::FromStr}; use std::{
fmt::Display,
ops::{Add, Mul, Sub},
str::FromStr,
};
use crate::error::{MatrixSetValueError, ParseMatrixError}; use crate::error::{MatrixSetValueError, ParseMatrixError};
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
pub struct Matrix { pub struct Matrix {
/// Number of rows in matrix. /// Number of rows in matrix.
pub nrows: usize, pub nrows: usize,
/// Number of columns in matrix. /// Number of columns in matrix.
pub ncols: usize, pub ncols: usize,
/// Data stored in the matrix, you should not access this directly /// Data stored in the matrix, you should not access this directly
data: Vec<Vec<i32>>, data: Vec<Vec<i32>>,
} }
@ -121,7 +125,6 @@ impl Matrix {
} }
} }
} }
impl FromStr for Matrix { impl FromStr for Matrix {
type Err = ParseMatrixError; type Err = ParseMatrixError;
fn from_str(s: &str) -> Result<Self, Self::Err> { fn from_str(s: &str) -> Result<Self, Self::Err> {
@ -188,7 +191,7 @@ impl<'a, 'b> Sub<&'b Matrix> for &'a Matrix {
fn sub(self, rhs: &'b Matrix) -> Self::Output { fn sub(self, rhs: &'b Matrix) -> Self::Output {
todo!() todo!()
} }
} }
impl<'a, 'b> Mul<&'b Matrix> for &'a Matrix { impl<'a, 'b> Mul<&'b Matrix> for &'a Matrix {
type Output = Matrix; type Output = Matrix;
fn mul(self, rhs: &'b Matrix) -> Self::Output { fn mul(self, rhs: &'b Matrix) -> Self::Output {
@ -221,8 +224,7 @@ impl From<Vec<i32>> for Matrix {
Matrix { Matrix {
nrows: value.len(), nrows: value.len(),
ncols: 1, ncols: 1,
data: vec![value], data: value.iter().map(|v| vec![*v]).collect(),
} }
} }
} }