# Crate `paranoid_vault` :::::::{rust:crate} paranoid_vault :index: 0 ::: ::: :::{rust:use} paranoid_vault :used_name: self ::: :::{rust:use} paranoid_vault :used_name: crate ::: :::{rust:use} argon2::Algorithm :used_name: Algorithm ::: :::{rust:use} argon2::Argon2 :used_name: Argon2 ::: :::{rust:use} argon2::Params :used_name: Params ::: :::{rust:use} argon2::password_hash::SaltString :used_name: SaltString ::: :::{rust:use} argon2::Version :used_name: Version ::: :::{rust:use} openssl::symm::Cipher :used_name: Cipher ::: :::{rust:use} openssl::symm::Crypter :used_name: Crypter ::: :::{rust:use} openssl::symm::Mode :used_name: Mode ::: :::{rust:use} openssl::rand::rand_bytes :used_name: rand_bytes ::: :::{rust:use} paranoid_core::GenerationReport :used_name: GenerationReport ::: :::{rust:use} paranoid_core::ParanoidRequest :used_name: ParanoidRequest ::: :::{rust:use} paranoid_core::execute_request :used_name: execute_request ::: :::{rust:use} rusqlite::Connection :used_name: Connection ::: :::{rust:use} rusqlite::OptionalExtension :used_name: OptionalExtension ::: :::{rust:use} rusqlite::params :used_name: params ::: :::{rust:use} serde::Deserialize :used_name: Deserialize ::: :::{rust:use} serde::Serialize :used_name: Serialize ::: :::{rust:use} std::path::Path :used_name: Path ::: :::{rust:use} std::path::PathBuf :used_name: PathBuf ::: :::{rust:use} std::time::SystemTime :used_name: SystemTime ::: :::{rust:use} std::time::UNIX_EPOCH :used_name: UNIX_EPOCH ::: :::{rust:use} std::fs :used_name: fs ::: :::{rust:use} thiserror::Error :used_name: Error ::: :::{rust:use} zeroize::Zeroizing :used_name: Zeroizing ::: :::{rubric} Functions ::: ::::::{rust:function} paranoid_vault::init_vault :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"init_vault"},{"type":"punctuation","value":"("},{"type":"name","value":"path"},{"type":"punctuation","value":": "},{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"AsRef","target":"AsRef"},{"type":"punctuation","value":"<"},{"type":"link","value":"Path","target":"Path"},{"type":"punctuation","value":">"},{"type":"punctuation","value":", "},{"type":"name","value":"master_password"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"VaultHeader","target":"VaultHeader"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_vault::unlock_vault :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"unlock_vault"},{"type":"punctuation","value":"("},{"type":"name","value":"path"},{"type":"punctuation","value":": "},{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"AsRef","target":"AsRef"},{"type":"punctuation","value":"<"},{"type":"link","value":"Path","target":"Path"},{"type":"punctuation","value":">"},{"type":"punctuation","value":", "},{"type":"name","value":"master_password"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"UnlockedVault","target":"UnlockedVault"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::::: :::{rubric} Enums ::: ::::::{rust:enum} paranoid_vault::VaultError :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"VaultError"}] ::: ::: :::::{rust:struct} paranoid_vault::VaultError::InvalidArguments :index: 2 :vis: pub :toc: InvalidArguments :layout: [{"type":"name","value":"InvalidArguments"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::VaultExists :index: 2 :vis: pub :toc: VaultExists :layout: [{"type":"name","value":"VaultExists"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::VaultNotFound :index: 2 :vis: pub :toc: VaultNotFound :layout: [{"type":"name","value":"VaultNotFound"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::UnlockFailed :index: 2 :vis: pub :toc: UnlockFailed :layout: [{"type":"name","value":"UnlockFailed"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::ItemNotFound :index: 2 :vis: pub :toc: ItemNotFound :layout: [{"type":"name","value":"ItemNotFound"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::RandomFailure :index: 2 :vis: pub :toc: RandomFailure :layout: [{"type":"name","value":"RandomFailure"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::CryptoFailure :index: 2 :vis: pub :toc: CryptoFailure :layout: [{"type":"name","value":"CryptoFailure"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::Sqlite :index: 2 :vis: pub :toc: Sqlite :layout: [{"type":"name","value":"Sqlite"},{"type":"punctuation","value":"("},{"type":"link","value":"rusqlite","target":"rusqlite"},{"type":"punctuation","value":"::"},{"type":"name","value":"Error"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::Io :index: 2 :vis: pub :toc: Io :layout: [{"type":"name","value":"Io"},{"type":"punctuation","value":"("},{"type":"link","value":"std","target":"std"},{"type":"punctuation","value":"::"},{"type":"name","value":"io"},{"type":"punctuation","value":"::"},{"type":"name","value":"Error"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::Json :index: 2 :vis: pub :toc: Json :layout: [{"type":"name","value":"Json"},{"type":"punctuation","value":"("},{"type":"link","value":"serde_json","target":"serde_json"},{"type":"punctuation","value":"::"},{"type":"name","value":"Error"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::Argon2 :index: 2 :vis: pub :toc: Argon2 :layout: [{"type":"name","value":"Argon2"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultError::Generator :index: 2 :vis: pub :toc: Generator :layout: [{"type":"name","value":"Generator"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::: ::::::{rust:enum} paranoid_vault::VaultItemKind :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"VaultItemKind"}] ::: ::: :::::{rust:struct} paranoid_vault::VaultItemKind::Login :index: 2 :vis: pub :toc: Login :layout: [{"type":"name","value":"Login"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_vault::VaultItemKind :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"VaultItemKind","target":"VaultItemKind"}] :toc: impl VaultItemKind ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_vault::VaultItemKind::as_str :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"as_str"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"link","value":"str","target":"str"}] ::: ::: :::: ::::: :::::: ::::::{rust:enum} paranoid_vault::VaultItemPayload :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"VaultItemPayload"}] ::: ::: :::::{rust:struct} paranoid_vault::VaultItemPayload::Login :index: 2 :vis: pub :toc: Login :layout: [{"type":"name","value":"Login"},{"type":"punctuation","value":"("},{"type":"link","value":"LoginRecord","target":"LoginRecord"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::: ::::::{rust:enum} paranoid_vault::VaultKeyslotKind :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"VaultKeyslotKind"}] ::: ::: :::::{rust:struct} paranoid_vault::VaultKeyslotKind::Password :index: 2 :vis: pub :toc: Password :layout: [{"type":"name","value":"Password"}] ::: ::: ::::: :::::{rust:struct} paranoid_vault::VaultKeyslotKind::Device :index: 2 :vis: pub :toc: Device :layout: [{"type":"name","value":"Device"}] ::: ::: ::::: :::::: :::{rubric} Structs and Unions ::: ::::::{rust:struct} paranoid_vault::LoginRecord :index: 1 :vis: pub :toc: struct LoginRecord :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"LoginRecord"}] ::: ::: :::::{rust:variable} paranoid_vault::LoginRecord::title :index: 2 :vis: pub :toc: title :layout: [{"type":"name","value":"title"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::LoginRecord::username :index: 2 :vis: pub :toc: username :layout: [{"type":"name","value":"username"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::LoginRecord::password :index: 2 :vis: pub :toc: password :layout: [{"type":"name","value":"password"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::LoginRecord::url :index: 2 :vis: pub :toc: url :layout: [{"type":"name","value":"url"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::LoginRecord::notes :index: 2 :vis: pub :toc: notes :layout: [{"type":"name","value":"notes"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_vault::NewLoginRecord :index: 1 :vis: pub :toc: struct NewLoginRecord :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"NewLoginRecord"}] ::: ::: :::::{rust:variable} paranoid_vault::NewLoginRecord::title :index: 2 :vis: pub :toc: title :layout: [{"type":"name","value":"title"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::NewLoginRecord::username :index: 2 :vis: pub :toc: username :layout: [{"type":"name","value":"username"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::NewLoginRecord::password :index: 2 :vis: pub :toc: password :layout: [{"type":"name","value":"password"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::NewLoginRecord::url :index: 2 :vis: pub :toc: url :layout: [{"type":"name","value":"url"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::NewLoginRecord::notes :index: 2 :vis: pub :toc: notes :layout: [{"type":"name","value":"notes"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_vault::UnlockedVault :index: 1 :vis: pub :toc: struct UnlockedVault :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"UnlockedVault"}] ::: ::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_vault::UnlockedVault :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"UnlockedVault","target":"UnlockedVault"}] :toc: impl UnlockedVault ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_vault::UnlockedVault::add_login :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"add_login"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"record"},{"type":"punctuation","value":": "},{"type":"link","value":"NewLoginRecord","target":"NewLoginRecord"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"VaultItem","target":"VaultItem"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::{rust:function} paranoid_vault::UnlockedVault::delete_item :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"delete_item"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"punctuation","value":"("},{"type":"punctuation","value":")"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::{rust:function} paranoid_vault::UnlockedVault::generate_and_store :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"generate_and_store"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"request"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"ParanoidRequest","target":"ParanoidRequest"},{"type":"punctuation","value":", "},{"type":"name","value":"title"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"name","value":"username"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"name","value":"url"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"},{"type":"punctuation","value":", "},{"type":"name","value":"notes"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"punctuation","value":"("},{"type":"link","value":"GenerationReport","target":"GenerationReport"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultItem","target":"VaultItem"},{"type":"punctuation","value":")"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::{rust:function} paranoid_vault::UnlockedVault::get_item :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"get_item"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"VaultItem","target":"VaultItem"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::{rust:function} paranoid_vault::UnlockedVault::header :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"header"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"link","value":"VaultHeader","target":"VaultHeader"}] ::: ::: :::: ::::{rust:function} paranoid_vault::UnlockedVault::list_items :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"list_items"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"VaultItemSummary","target":"VaultItemSummary"},{"type":"punctuation","value":">"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::{rust:function} paranoid_vault::UnlockedVault::path :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"path"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"link","value":"Path","target":"Path"}] ::: ::: :::: ::::{rust:function} paranoid_vault::UnlockedVault::update_login :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"update_login"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"update"},{"type":"punctuation","value":": "},{"type":"link","value":"UpdateLoginRecord","target":"UpdateLoginRecord"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"VaultItem","target":"VaultItem"},{"type":"punctuation","value":", "},{"type":"link","value":"VaultError","target":"VaultError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::: :::::: ::::::{rust:struct} paranoid_vault::UpdateLoginRecord :index: 1 :vis: pub :toc: struct UpdateLoginRecord :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"UpdateLoginRecord"}] ::: ::: :::::{rust:variable} paranoid_vault::UpdateLoginRecord::title :index: 2 :vis: pub :toc: title :layout: [{"type":"name","value":"title"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::UpdateLoginRecord::username :index: 2 :vis: pub :toc: username :layout: [{"type":"name","value":"username"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::UpdateLoginRecord::password :index: 2 :vis: pub :toc: password :layout: [{"type":"name","value":"password"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::UpdateLoginRecord::url :index: 2 :vis: pub :toc: url :layout: [{"type":"name","value":"url"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::UpdateLoginRecord::notes :index: 2 :vis: pub :toc: notes :layout: [{"type":"name","value":"notes"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_vault::VaultHeader :index: 1 :vis: pub :toc: struct VaultHeader :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"VaultHeader"}] ::: ::: :::::{rust:variable} paranoid_vault::VaultHeader::format_version :index: 2 :vis: pub :toc: format_version :layout: [{"type":"name","value":"format_version"},{"type":"punctuation","value":": "},{"type":"link","value":"u32","target":"u32"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultHeader::created_at_epoch :index: 2 :vis: pub :toc: created_at_epoch :layout: [{"type":"name","value":"created_at_epoch"},{"type":"punctuation","value":": "},{"type":"link","value":"i64","target":"i64"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultHeader::migration_state :index: 2 :vis: pub :toc: migration_state :layout: [{"type":"name","value":"migration_state"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultHeader::kdf :index: 2 :vis: pub :toc: kdf :layout: [{"type":"name","value":"kdf"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultKdfParams","target":"VaultKdfParams"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultHeader::keyslots :index: 2 :vis: pub :toc: keyslots :layout: [{"type":"name","value":"keyslots"},{"type":"punctuation","value":": "},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"VaultKeyslot","target":"VaultKeyslot"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_vault::VaultItem :index: 1 :vis: pub :toc: struct VaultItem :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"VaultItem"}] ::: ::: :::::{rust:variable} paranoid_vault::VaultItem::id :index: 2 :vis: pub :toc: id :layout: [{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItem::kind :index: 2 :vis: pub :toc: kind :layout: [{"type":"name","value":"kind"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultItemKind","target":"VaultItemKind"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItem::created_at_epoch :index: 2 :vis: pub :toc: created_at_epoch :layout: [{"type":"name","value":"created_at_epoch"},{"type":"punctuation","value":": "},{"type":"link","value":"i64","target":"i64"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItem::updated_at_epoch :index: 2 :vis: pub :toc: updated_at_epoch :layout: [{"type":"name","value":"updated_at_epoch"},{"type":"punctuation","value":": "},{"type":"link","value":"i64","target":"i64"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItem::payload :index: 2 :vis: pub :toc: payload :layout: [{"type":"name","value":"payload"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultItemPayload","target":"VaultItemPayload"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_vault::VaultItemSummary :index: 1 :vis: pub :toc: struct VaultItemSummary :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"VaultItemSummary"}] ::: ::: :::::{rust:variable} paranoid_vault::VaultItemSummary::id :index: 2 :vis: pub :toc: id :layout: [{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItemSummary::kind :index: 2 :vis: pub :toc: kind :layout: [{"type":"name","value":"kind"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultItemKind","target":"VaultItemKind"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItemSummary::title :index: 2 :vis: pub :toc: title :layout: [{"type":"name","value":"title"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItemSummary::username :index: 2 :vis: pub :toc: username :layout: [{"type":"name","value":"username"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItemSummary::url :index: 2 :vis: pub :toc: url :layout: [{"type":"name","value":"url"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultItemSummary::updated_at_epoch :index: 2 :vis: pub :toc: updated_at_epoch :layout: [{"type":"name","value":"updated_at_epoch"},{"type":"punctuation","value":": "},{"type":"link","value":"i64","target":"i64"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_vault::VaultKdfParams :index: 1 :vis: pub :toc: struct VaultKdfParams :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"VaultKdfParams"}] ::: ::: :::::{rust:variable} paranoid_vault::VaultKdfParams::algorithm :index: 2 :vis: pub :toc: algorithm :layout: [{"type":"name","value":"algorithm"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKdfParams::memory_cost_kib :index: 2 :vis: pub :toc: memory_cost_kib :layout: [{"type":"name","value":"memory_cost_kib"},{"type":"punctuation","value":": "},{"type":"link","value":"u32","target":"u32"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKdfParams::iterations :index: 2 :vis: pub :toc: iterations :layout: [{"type":"name","value":"iterations"},{"type":"punctuation","value":": "},{"type":"link","value":"u32","target":"u32"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKdfParams::parallelism :index: 2 :vis: pub :toc: parallelism :layout: [{"type":"name","value":"parallelism"},{"type":"punctuation","value":": "},{"type":"link","value":"u32","target":"u32"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKdfParams::derived_key_len :index: 2 :vis: pub :toc: derived_key_len :layout: [{"type":"name","value":"derived_key_len"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_vault::VaultKeyslot :index: 1 :vis: pub :toc: struct VaultKeyslot :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"VaultKeyslot"}] ::: ::: :::::{rust:variable} paranoid_vault::VaultKeyslot::id :index: 2 :vis: pub :toc: id :layout: [{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKeyslot::kind :index: 2 :vis: pub :toc: kind :layout: [{"type":"name","value":"kind"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultKeyslotKind","target":"VaultKeyslotKind"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKeyslot::wrapped_by_os_keystore :index: 2 :vis: pub :toc: wrapped_by_os_keystore :layout: [{"type":"name","value":"wrapped_by_os_keystore"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKeyslot::salt_hex :index: 2 :vis: pub :toc: salt_hex :layout: [{"type":"name","value":"salt_hex"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKeyslot::nonce_hex :index: 2 :vis: pub :toc: nonce_hex :layout: [{"type":"name","value":"nonce_hex"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKeyslot::tag_hex :index: 2 :vis: pub :toc: tag_hex :layout: [{"type":"name","value":"tag_hex"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_vault::VaultKeyslot::encrypted_master_key_hex :index: 2 :vis: pub :toc: encrypted_master_key_hex :layout: [{"type":"name","value":"encrypted_master_key_hex"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: ::::::