Skip to main content

SeriesForm

Struct SeriesForm 

Source
pub struct SeriesForm {
    pub fields: Vec<SeriesField>,
    pub values: Vec<String>,
    pub focus: usize,
    pub error: Option<String>,
}
Expand description

The Series tab’s create form.

A page-local form, the twin of ScheduleForm: the page owns it, so defining a series needs no new mode, no new InputContext and no new binding. It collects text and nothing else — every rule about what the text may be is the shared create service’s, and a refusal keeps the form open with the message on it rather than closing and losing what was typed.

Fields§

§fields: Vec<SeriesField>

The fields shown, in row order.

§values: Vec<String>

The typed value per shown field, in the same order.

§focus: usize

The focused row.

§error: Option<String>

The refusal the last save produced, kept while the form stays open.

Implementations§

Source§

impl SeriesForm

Source

pub const NOTE: &'static str = "`interval` and `cron-like` rules need the CLI: \ `tix recurring create --rule <FAMILY> --interval \ <N> --unit <UNIT>`."

Where the rule families the form cannot express are defined.

The three fields complete daily, weekly and monthly. The other two families need arguments the form does not collect, so rather than offer them (and refuse), the form says where they live — the same service, the CLI’s own flags. Asserted against [SeriesField::Rule::hint] by a test, so the two can not drift apart again.

Source

pub fn create() -> Self

A form that creates a series: every field empty, the title focused first.

Source

pub fn title(&self) -> &'static str

The form’s block title: what it is about to do, and the keys it answers to.

Source

pub fn focused(&self) -> SeriesField

The focused field.

Source

pub fn value(&self, field: SeriesField) -> &str

The typed value of field ("" when the form does not show it).

Source

pub fn focus_next(&mut self)

Step the focus forward, wrapping.

Source

pub fn focus_prev(&mut self)

Step the focus backward, wrapping.

Source

pub fn insert_char(&mut self, c: char)

Append a character to the focused field.

Source

pub fn delete_char(&mut self)

Remove the focused field’s last character.

Source

pub fn clear_field(&mut self)

Empty the focused field, for a value being replaced rather than extended.

Source

pub fn set_error(&mut self, message: String)

Keep the refusal on the form, so the message and what was typed stay together.

Trait Implementations§

Source§

impl Clone for SeriesForm

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 SeriesForm

Source§

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

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

impl Eq for SeriesForm

Source§

impl PartialEq for SeriesForm

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 StructuralPartialEq for SeriesForm

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<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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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.