Hi, this piece of code work fine for me.
but How i can encapsulate in Struct and inicialize loading data from info.txt ??
MY PIECE OF CODE WORK FINE!
// .begin info.txt
//let mut original_title: &str = "";
let mut original_title:Option<String> = None;
//let mut year: &str = "";
let mut year:Option<String> = None;
//let mut country: &str = "";
let mut country:Option<String> = None;
let mut synopsis:Option<String> = None;
let mut cast:Option<String> = None;
let mut genre:Option<String> = None;
if info_txt == true {
//let reader = "\u{feff}\r\nOriginal Title\r\n Plane\r\nAKA\r\n The Plane\r\nSaving General Tang\r\nYear\r\n 2022\r\nCountry\r\n United States\r\n";
let filename = format!("{}/info.txt", movie_path.display());
//println!("file name info: {}", &filename);
let reader = fs::read_to_string(filename)
.expect("Except: file info.txt does not exist");
for line in lines {
if line.contains("Original Title") {
//original_title = find(&reader, &line).unwrap().trim();
original_title = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Year") {
year = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Country") {
country = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Synopsis") {
synopsis = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Cast") {
cast = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Genre") {
genre = Some(find(&reader, &line).unwrap().trim().to_string());
}
}
//println!("Original title is -> {}", original_title); :-(
println!("Original title is -> {}", original_title.clone().unwrap());
// println!("Year is -> {}", year);
// println!("Country is -> {}", country);
} // end if info_txt
MY IDEA IS THIS :woozy_face::
struct Section_info {
original_title:Option<String>,
year:Option<String>,
country:Option<String>,
cast:Option<String>,
genre:Option<String>,
synopsis:Option<String>,
}
impl Section_info {
fn read(&self, info_src: &String) {
let filename = info_src;
//println!("file name info: {}", &filename);
let reader = fs::read_to_string(filename)
.expect("Except: file info.txt does not exist");
let mut lines = reader.lines();
//println!("CONTENTS info: {:?}", &lines);
for line in lines {
if line.contains("Original title") {
//original_title = find(&reader, &line).unwrap().trim();
self.original_title = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Year") {
self.year = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Country") {
self.country = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Synopsis") {
self.synopsis = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Cast") {
self.cast = Some(find(&reader, &line).unwrap().trim().to_string());
} else if line.contains("Genre") {
self.genre = Some(find(&reader, &line).unwrap().trim().to_string());
}
} // end for line
} // end fn read
fn show(&self) {
println!("Original title is: {}", self.original_title.unwrap());
println!("Year is: {}", self.year.unwrap());
println!("Country is: {}", self.country.unwrap());
} // end fn show
}