Skip to content

Commit 0c7946e

Browse files
committed
Updated dim to be consistent with indices
1 parent 1cd9c2e commit 0c7946e

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/sparsevec.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ use diesel::{deserialize::FromSqlRow, expression::AsExpression};
99
#[cfg_attr(feature = "diesel", derive(FromSqlRow, AsExpression))]
1010
#[cfg_attr(feature = "diesel", diesel(sql_type = SparseVectorType))]
1111
pub struct SparseVector {
12-
pub(crate) dim: usize,
12+
pub(crate) dim: i32,
1313
pub(crate) indices: Vec<i32>,
1414
pub(crate) values: Vec<f32>,
1515
}
1616

1717
impl SparseVector {
1818
/// Creates a sparse vector from a dense vector.
1919
pub fn from_dense(vec: &[f32]) -> SparseVector {
20-
let dim = vec.len();
20+
let dim: i32 = vec.len().try_into().unwrap();
2121
let mut indices = Vec::new();
2222
let mut values = Vec::new();
2323

@@ -38,7 +38,7 @@ impl SparseVector {
3838
/// Creates a sparse vector from a map of non-zero elements.
3939
pub fn from_map<'a, I: IntoIterator<Item = (&'a i32, &'a f32)>>(
4040
map: I,
41-
dim: usize,
41+
dim: i32,
4242
) -> SparseVector {
4343
let mut elements: Vec<(&i32, &f32)> = map.into_iter().filter(|v| *v.1 != 0.0).collect();
4444
elements.sort_by_key(|v| *v.0);
@@ -53,7 +53,7 @@ impl SparseVector {
5353
}
5454

5555
/// Returns the number of dimensions.
56-
pub fn dimensions(&self) -> usize {
56+
pub fn dimensions(&self) -> i32 {
5757
self.dim
5858
}
5959

@@ -69,7 +69,7 @@ impl SparseVector {
6969

7070
/// Returns the sparse vector as a `Vec<f32>`.
7171
pub fn to_vec(&self) -> Vec<f32> {
72-
let mut vec = vec![0.0; self.dim];
72+
let mut vec = vec![0.0; self.dim as usize];
7373
for (i, v) in self.indices.iter().zip(&self.values) {
7474
vec[*i as usize] = *v;
7575
}
@@ -80,7 +80,7 @@ impl SparseVector {
8080
pub(crate) fn from_sql(
8181
buf: &[u8],
8282
) -> Result<SparseVector, Box<dyn std::error::Error + Sync + Send>> {
83-
let dim = i32::from_be_bytes(buf[0..4].try_into()?) as usize;
83+
let dim = i32::from_be_bytes(buf[0..4].try_into()?);
8484
let nnz = i32::from_be_bytes(buf[4..8].try_into()?) as usize;
8585
let unused = i32::from_be_bytes(buf[8..12].try_into()?);
8686
if unused != 0 {

0 commit comments

Comments
 (0)