Hi, I have some problems with state management, I have several states and there is no problem with them, but with this one (VaultMeta) there is and I don't understand why.
I've seen other discussions on this topic and haven't found a similar error myself.
Thank you for your answers
mod vaults;
#[path ="./structs/vault_meta.rs"]
mod vault_meta;
fn main() {
let vault_meta: VaultMeta = match vault_meta::load_or_init() {
Ok(v) => v,
Err(err) => {
match err {
...
}
return ();
}
};
tauri::Builder::default()
.manage(AppState { pass: Default::default() })
.manage(app_config)
.manage(vault_meta)
.setup(|app| {
create_directory_if_not_exist(app);
Ok(())
})
.invoke_handler(tauri::generate_handler![
vaults::import_vault,
vaults::get_all_vaults,
vaults::get_vault_by_name,
vaults::create_new_vault,
])...
}
#[tauri::command]
pub fn get_vault_by_name(file_name: String, config: tauri::State<AppConfig>, meta: tauri::State<VaultMeta>) {
let mut path = config.vaults_path.lock().unwrap().to_path_buf();
path.push(file_name);
path.set_extension(&config.vault_extension);
if path.exists() {
let mut file = fs::read_to_string(path).unwrap();
file = file.replace("\r", "");
let lines = file.split("\n");
for line in lines {
println!("{:?}", line);
}
}
}
vault_meta.rs
#[derive(Serialize, Deserialize)]
pub struct VaultMeta {
meta: Mutex<HashMap<String, VaultMetaItem>>
}
#[derive(Serialize, Deserialize)]
pub struct VaultMetaItem {
name: String,
bg_color: String,
highlight_color: String
}
thread 'main' panicked at 'state not managed for field meta on command get_vault_by_name. You must call .manage() before using this command', state.rs:51:7