use std::fs::File;
use std::io::{BufRead, BufReader, Error, ErrorKind, Read};
pub fn read_to_int64_vec(path: &str,approx_cap:usize) -> Result<Vec<i64> ,Error>{
let mut v:Vec<i64> = Vec::with_capacity(approx_cap);
let file_handle = File::open(path).expect("file open error");
let iterator_file_handle = BufReader::new(file_handle);
for line in iterator_file_handle.lines() {
let line = line ?;
let n = line.trim().parse().expect("some failure during conversion of data");
v.push(n);
}
Ok(v)
}
pub fn read_to_string_vec_as_whole_sentences(path: &str, approx_cap:usize) -> Result<Vec<String>,Error>{
let mut v:Vec<String> = Vec::with_capacity(approx_cap);
let file_handle = File::open(path).expect("file open error");
let iterator_file_handle = BufReader::new(file_handle);
for line in iterator_file_handle.lines() {
let line = line?;
v.push(line);
}
Ok(v)
}
pub fn read_to_string_vec_word_by_word(path: &str,approx_cap:usize) -> Result<Vec<String>,Error> {
let sentence_vector : Vec<String> = read_to_string_vec_as_whole_sentences(path,approx_cap)?;
let mut word_vector = Vec::new();
for sentence in sentence_vector.iter() {
let sentence_as_bytes = sentence.as_bytes();
for (i,&bytes_of_sentence) in sentence_as_bytes.iter().enumerate() {
if bytes_of_sentence == b' '|| bytes_of_sentence == b',' {
let f = i ;
let j = 0;
let temp_word = &sentence[j..i] ;
let temp_word = temp_word as String;
word_vector.push(temp_word);
j = i ;
}
}
}
Ok(word_vector)
}
error is :
C:\Users\Dell\Desktop\work_space\rust\lib\dbLibs>cargo build
Compiling dbLibs v0.1.0 (file:///C:/Users/Dell/Desktop/work_space/rust/lib/dbLibs)
warning: unused imports: `ErrorKind`, `Read`
--> src\fxx.rs:2:42
|
2 | use std::io::{BufRead, BufReader, Error, ErrorKind, Read};
| ^^^^^^^^^ ^^^^
|
= note: #[warn(unused_imports)] on by default
error[E0605]: non-primitive cast: `&str` as `std::string::String`
--> src\fxx.rs:46:21
|
46 | let temp_word = temp_word as String;
| ^^^^^^^^^^^^^^^^^^^
|
= note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
error: aborting due to previous error
For more information about this error, try `rustc --explain E0605`.
error: Could not compile `dbLibs`.
To learn more, run the command again with --verbose.