Skip to main content

PreferencesAnswer

Struct PreferencesAnswer 

Source
pub struct PreferencesAnswer {
    pub lang: Option<Lang>,
    pub core: CorePreferences,
    pub welcomed: bool,
    pub panel: bool,
    pub tier: Option<Tier>,
    pub appearance: Appearance,
    pub proxying: Proxying,
    pub chords: Vec<Chord>,
    pub tags: Vec<SessionTags>,
    pub theme: ThemeOverride,
}
Expand description

Everything one person settled about their own copy of the city.

Whole rather than a dozen readings, because that is the record the file holds and because a screen that changes two of these at once must not be able to write one and drop the other.

This is the grammar of [ui] in the person’s own file as well as the shape of the answer. The file is read through this type and written by serialising it, so a key the file may hold and a field the answer states are one declaration. A section that states only some of them is read with the rest at the postures PreferencesAnswer::default gives, and a key no field claims is refused where it is written rather than ignored into a setting that never takes effect.

Fields§

§lang: Option<Lang>

The language this person reads the interface in, and nothing when they have never said.

Absent rather than a language this build picked for them: the browser’s own tag is the only evidence anybody has before the first choice, and a stated en here would overrule it on every machine whose owner simply never opened the setting.

§core: CorePreferences

Performance settings read from [core], never stored in [ui].

§welcomed: bool

Whether this person has walked through the welcome once. The city decides whether setting up is needed; this only decides whether somebody who skipped it is asked again.

§panel: bool

Whether the panel beside a conversation is open.

§tier: Option<Tier>

The tier this person last chose, and nothing when they never chose one: the tier a first visit opens in is the page’s posture, and a stated tier here would overrule it on every machine whose owner never pressed the key.

§appearance: Appearance§proxying: Proxying

Which proxy rule an endpoint attached from now on starts with. An endpoint already attached keeps the rule the city recorded for it.

§chords: Vec<Chord>

The chords this person rebound, action order.

§tags: Vec<SessionTags>

The tags this person gave sessions, in session order (crates/wire/spec/Preference.lean §8-84).

§theme: ThemeOverride

The person’s colours laid over the built-in theme (crates/wire/spec/Preference.lean D29).

Implementations§

Source§

impl PreferencesAnswer

Source

pub fn apply(&mut self, patch: PreferencePatch)

Lands one named change on this record.

Here rather than at the file: what a patch means is the patch’s own rule, and a second application of it — in the store, in a test, in whatever keeps these next — would be a second answer to what Chord("") does.

Trait Implementations§

Source§

impl Clone for PreferencesAnswer

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PreferencesAnswer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PreferencesAnswer

What a person who has settled nothing is answered.

The postures this build draws before anybody chooses, stated once for the file’s reader and the answer’s reader together. panel is the one that is not its type’s own default: the panel beside a conversation is open until somebody closes it, so an unwritten file has to say true where welcomed says false.

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for PreferencesAnswer

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for PreferencesAnswer

Source§

impl PartialEq for PreferencesAnswer

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for PreferencesAnswer

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for PreferencesAnswer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more