Struct rat_widget::masked_input::core::InputMaskCore

source ·
pub struct InputMaskCore { /* private fields */ }
Expand description

Text editing core.

Implementations§

source§

impl InputMaskCore

source

pub fn new() -> Self

source

pub fn new_with_symbols(sym: NumberSymbols) -> Self

source

pub fn tokens(&self) -> &[MaskToken]

Tokens used for the mask.

source

pub fn offset(&self) -> usize

Offset

source

pub fn set_offset(&mut self, offset: usize)

Change the offset.

Ensures the cursor is visible and modifies any given offset. Ensures the offset is not beyond the length.

source

pub fn width(&self) -> usize

Display width

source

pub fn set_width(&mut self, width: usize)

Display width

source

pub fn set_cursor(&mut self, cursor: usize, extend_selection: bool) -> bool

source

pub fn set_default_cursor(&mut self)

Place cursor at decimal separator, if any. 0 otherwise.

source

pub fn cursor(&self) -> usize

Cursor position as grapheme-idx.

source

pub fn anchor(&self) -> usize

source

pub fn set_num_symbols(&mut self, sym: NumberSymbols)

Set the decimal separator and other symbols. Only used for rendering and to map user input. The value itself uses “.”

source

pub fn set_mask<S: AsRef<str>>(&mut self, s: S) -> Result<(), Error>

Changes the mask. Resets the value to a default.

source

pub fn mask(&self) -> String

Return the mask.

source

pub fn debug_mask(&self) -> String

Return the mask.

source

pub fn set_display_mask<S: Into<String>>(&mut self, s: S)

Set the mask that is shown.

source

pub fn display_mask(&self) -> String

Display mask

source

pub fn default_value(&self) -> String

Create a default value according to the mask.

source

pub fn set_value<S: Into<String>>(&mut self, s: S)

Sets the value. No checks if the value conforms to the mask. If the value is too short it will be filled with space. if the value is too long it will be truncated.

source

pub fn value(&self) -> &str

Value

source

pub fn value_graphemes(&self) -> Graphemes<'_>

Value as grapheme iterator.

source

pub fn value_parts(&self) -> Vec<String>

Value split along any separators

source

pub fn compact_value(&self) -> String

Value without whitespace and grouping separators. Might be easier to parse.

source

pub fn clear(&mut self)

Reset value but not the mask and width. Resets offset and cursor position too.

source

pub fn is_empty(&self) -> bool

No value different from the default.

source

pub fn len(&self) -> usize

Length

source

pub fn has_selection(&self) -> bool

source

pub fn is_select_all(&self) -> bool

source

pub fn selection(&self) -> Range<usize>

source

pub fn rendered(&self) -> &str

Rendered string for display.

source

pub fn render_value(&mut self)

Create the rendered value.

source

pub fn render_condensed_value(&mut self)

Create the rendered value.

source

pub fn byte_pos(&self, byte_pos: usize) -> Option<usize>

Convert the byte-position to a grapheme position.

source

pub fn byte_at(&self, pos: usize) -> Option<(usize, usize)>

Grapheme position to byte position. Returns the byte-range for the grapheme at pos.

source

pub fn char_at(&self, pos: usize) -> Option<usize>

Grapheme position to char position. Returns the first char position for the grapheme at pos.

source

pub fn char_pos(&self, char_pos: usize) -> Option<usize>

Char position to grapheme position.

source

pub fn next_word_boundary(&self, pos: usize) -> Option<usize>

Find next word.

source

pub fn prev_word_boundary(&self, pos: usize) -> Option<usize>

Find previous word.

source

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

Start at the cursor position and find a valid insert position for the input c. Put the cursor at that position.

source

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

Insert the char if it matches the cursor mask and the current section is not full.

advance_cursor() must be called before for correct functionality.

Otherwise: your mileage might vary.

source

pub fn remove_selection(&mut self, selection: Range<usize>)

Remove the selection.

source

pub fn remove_prev(&mut self)

Remove the previous char.

source

pub fn remove_next(&mut self)

Remove the next char.

Trait Implementations§

source§

impl Clone for InputMaskCore

source§

fn clone(&self) -> InputMaskCore

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for InputMaskCore

source§

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

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

impl Default for InputMaskCore

source§

fn default() -> InputMaskCore

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

impl PartialEq for InputMaskCore

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for InputMaskCore

source§

impl StructuralPartialEq for InputMaskCore

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§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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

Checks if this value is equivalent to the given key. Read more
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,

§

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>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.