Builder

Struct Builder 

Source
pub struct Builder {
    pub no_space_after_empty: bool,
    /* private fields */
}
Expand description

Builds and modifies a Text, based on replacements applied to it.

This struct is meant to be used alongside the [txt!] macro, as you can just push more Text to the Builder py pushing another Builder, which can be returned by the [txt!] macro:

fn is_more_than_two(num: usize) -> Text {
    let mut builder = Text::builder();
    builder.push(txt!("The number [a]{num}[] is"));
    if num > 2 {
        builder.push(txt!("[a]more[] than 2."));
    } else {
        builder.push(txt!("[a]not more[] than 2."));
    }
    builder.build()
}

In the above call, you can see that num was interpolated, just like with println!, there are also Forms being applied to the Text. Each [] pair denotes a Form. These pairs follow the following rule:

  • []: Will push the "default" Form, which is actually just removing prior Forms.
  • [a]: Will push the "accent" Form.
  • [{form}]: Will push the "{form}", where {form} can be any sequence of valid identifiers, separated by "."s.

Fields§

§no_space_after_empty: bool

Wether to collapse " "s after an empty element is pushed

Implementations§

Source§

impl Builder

Source

pub fn new() -> Self

Returns a new instance of Builder

Use Text::builder if you don’t want to bring Builder into scope.

Source

pub fn build(self) -> Text

Finish construction and returns the Text

Will also finish the last Form and alignments pushed to the builder, as well as pushing a '\n' at the end, much like with regular Text construction.

Source

pub fn push<D: Display, _T>(&mut self, part: impl Into<BuilderPart<D, _T>>)

Pushes a part of the text

This can be an impl Display type, an impl Tag, a FormId, a PathBuf, or even std::process::Output.

Source

pub fn last_was_empty(&self) -> bool

Whether or not the last added piece was empty

This happens when an empty String or an empty Text is pushed.

Source

pub fn push_str<D: Display>(&mut self, d: D)

Pushes an impl Display to the Text

If builder.no_space_after_empty is set to true and the argument is equal to " ", then it won’t be added if the previous argument was empty. This is useful especially in situations where you expect to be constructing a Text with spaces in between the elements (like in a status line), but you don’t want an empty element to just leave to space wide gap in between two non empty elements.

Source

pub fn reset_form(&mut self)

Resets the Form

This is equivalent to pushing the default Form.

Source

pub fn reset_alignment(&mut self)

Resets the Form

This is equivalent to pushing the default Form.

Trait Implementations§

Source§

impl Clone for Builder

Source§

fn clone(&self) -> Builder

Returns a duplicate 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 Builder

Source§

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

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

impl Default for Builder

Source§

fn default() -> Self

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

impl From<Builder> for BuilderPart

Source§

fn from(value: Builder) -> Self

Converts to this type from the input type.
Source§

impl From<Builder> for Text

Source§

fn from(value: Builder) -> Self

Converts to this type from the input type.

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<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

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

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
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> 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 = 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>,

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.