pub struct Profile {Show 34 fields
pub user: Option<String>,
pub password: Option<String>,
pub oauth_token: Option<String>,
pub smtp_enabled: bool,
pub smtp_host: String,
pub smtp_port: u16,
pub smtp_security: Security,
pub auth_mech: AuthMech,
pub imap_enabled: bool,
pub imap_host: String,
pub imap_port: u16,
pub imap_security: Security,
pub imap_folder: String,
pub pop_enabled: bool,
pub pop_host: String,
pub pop_port: u16,
pub pop_security: Security,
pub send_test: bool,
pub mail_from: Option<String>,
pub from_addr: Option<String>,
pub to: Vec<String>,
pub cc: Vec<String>,
pub bcc: Vec<String>,
pub reply_to: Option<String>,
pub subject: String,
pub body: String,
pub ehlo_name: Option<String>,
pub timeout_secs: u64,
pub insecure_tls: bool,
pub ca_file: Option<PathBuf>,
pub log_level: String,
pub wire_trace: bool,
pub theme: String,
pub locale: Option<String>,
}Expand description
All testable settings. This is what gets serialised to TOML and what the GUI/CLI render and edit.
Fields§
§user: Option<String>§password: Option<String>Held in memory for the current session only. NEVER persisted
to disk - the #[serde(skip)] attribute makes this structurally
impossible. Passwords belong in the user’s keyboard or an OS
keychain (planned), not in a config file. This rule is documented
in AGENTS.md and enforced by tests/config_roundtrip.rs.
oauth_token: Option<String>Same rule as password: an OAuth bearer token grants full
mailbox access until it expires and is therefore a credential.
Session-only, never written.
smtp_enabled: bool§smtp_host: String§smtp_port: u16§smtp_security: Security§auth_mech: AuthMech§imap_enabled: bool§imap_host: String§imap_port: u16§imap_security: Security§imap_folder: String§pop_enabled: bool§pop_host: String§pop_port: u16§pop_security: Security§send_test: bool§mail_from: Option<String>§from_addr: Option<String>§to: Vec<String>§cc: Vec<String>§bcc: Vec<String>§reply_to: Option<String>§subject: String§body: String§ehlo_name: Option<String>§timeout_secs: u64§insecure_tls: bool§ca_file: Option<PathBuf>§log_level: String§wire_trace: bool§theme: String§locale: Option<String>User-selected interface language as a BCP-47 short code
("en", "nl", …). None means “follow the OS appearance
each launch”. An explicit value survives upgrades that broaden
or narrow the shipped-translation set; an unsupported code
silently falls back to the base locale via i18n::set_locale.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Profile
impl<'de> Deserialize<'de> for Profile
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Profile
impl RefUnwindSafe for Profile
impl Send for Profile
impl Sync for Profile
impl Unpin for Profile
impl UnsafeUnpin for Profile
impl UnwindSafe for Profile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.