Add the ability to read type

This commit is contained in:
Greg Hellings
2025-02-25 19:49:02 -06:00
parent fc904b33b3
commit 945823370b
6 changed files with 71 additions and 13 deletions
+42
View File
@@ -1,6 +1,40 @@
use crate::cxx::ffi;
use cxx::UniquePtr;
#[derive(PartialEq)]
pub enum Type {
Unknown,
BiblicalTexts,
Commentaries,
DailyDevotional,
GenericBooks,
Lexicons,
}
impl Type {
pub fn new(type_str: &String) -> Self {
match type_str.as_str() {
"Biblical Texts" => Type::BiblicalTexts,
"Commentaries" => Type::Commentaries,
"Daily Devotional" => Type::DailyDevotional,
"Generic Books" => Type::GenericBooks,
"Lexicons / Dictionaries" => Type::Lexicons,
_ => Type::Unknown,
}
}
pub fn get_name(&self) -> String {
match self {
Type::BiblicalTexts => String::from("Biblical Texts"),
Type::Commentaries => String::from("Commentaries"),
Type::DailyDevotional => String::from("Daily Devotional"),
Type::GenericBooks => String::from("Generic Books"),
Type::Lexicons => String::from("Lexicons / Dictionaries"),
Type::Unknown => String::from("Unknown"),
}
}
}
pub struct Module {
module: UniquePtr<ffi::Module>,
}
@@ -18,6 +52,14 @@ impl Module {
self.module.get_name()
}
pub fn get_type(&self) -> Type {
// This line I will use to see what the C++ library returns
// for all module types.
// You can also check swmgr.cpp for the list
// println!("{}", self.module.get_type());
Type::new(&self.module.get_type())
}
pub fn increment(&mut self) {
self.module.pin_mut().increment();
}