Skip to content

Commit 2017cbf

Browse files
committed
#3: prepared index_item vector
1 parent df0ad98 commit 2017cbf

File tree

5 files changed

+25
-5
lines changed

5 files changed

+25
-5
lines changed

src/ringo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
pub mod math;
22
pub mod molecule;
3-
mod bingo;
3+
mod ringo;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
mod index;
22
mod search;
3+
mod index_item;
Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
11
use std::fs::File;
22
use std::io::{BufRead};
3-
43
use crate::ringo::molecule::smiles::reader::molecule::parse_molecule;
4+
use crate::ringo::ringo::index_item::IndexItem;
55

6-
fn index(smiles_file: &str) {
6+
fn index(smiles_file: &str) -> Vec<IndexItem> {
77
// open file for reading
88
let fi = File::open(smiles_file).expect("Could not open file");
99

10+
let mut result = Vec::new();
1011
// open binary file for index
11-
1212
let mut offset = 0;
1313
// let mut fo = File::create(smiles_file.to_owned() + ".fp");
1414
for line in std::io::BufReader::new(fi).lines() {
1515
let line = line.unwrap();
1616
let molecule = parse_molecule(&line).unwrap().1;
1717
// let ecfp = molecule.ecfp(2, 512);
1818
// write ecfp and offset to binary file
19+
result.push(IndexItem::new(offset, molecule.ecfp(2, 512)));
20+
1921
offset += line.len() + 1;
2022
}
23+
return result;
2124
}
2225

2326
#[test]
2427
fn test_index() {
25-
index("molecules.smi");
28+
let result = index("molecules.smi");
29+
assert_eq!(result.len(), 1);
2630
}

src/ringo/ringo/index_item.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use bit_vec::BitVec;
2+
3+
pub struct IndexItem {
4+
pub position: usize,
5+
pub fingerprint: Vec<u8>
6+
}
7+
8+
impl IndexItem {
9+
pub fn new(position: usize, fingerprint: BitVec) -> IndexItem {
10+
IndexItem {
11+
position,
12+
fingerprint: fingerprint.to_bytes()
13+
}
14+
}
15+
}
File renamed without changes.

0 commit comments

Comments
 (0)