AmbiguousWidthTreatment

Enum AmbiguousWidthTreatment 

Source
pub enum AmbiguousWidthTreatment {
    Narrow,
    Wide,
}
Expand description

How to treat ambiguous width characters

Some Unicode characters have ambiguous width properties, meaning their display width depends on the context (terminal, font, locale, etc.). This enum allows you to specify how such characters should be treated.

§Examples

use string_width::{AmbiguousWidthTreatment, StringWidthOptions, string_width_with_options};

let text = "±×÷";  // Ambiguous width characters

let narrow_options = StringWidthOptions {
    count_ansi: false,
    ambiguous_width: AmbiguousWidthTreatment::Narrow,
};
assert_eq!(string_width_with_options(text, narrow_options), 3);

let wide_options = StringWidthOptions {
    count_ansi: false,
    ambiguous_width: AmbiguousWidthTreatment::Wide,
};
assert_eq!(string_width_with_options(text, wide_options), 6);

Variants§

§

Narrow

Treat ambiguous characters as narrow (width 1)

§

Wide

Treat ambiguous characters as wide (width 2)

Trait Implementations§

Source§

impl Clone for AmbiguousWidthTreatment

Source§

fn clone(&self) -> AmbiguousWidthTreatment

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 AmbiguousWidthTreatment

Source§

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

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

impl Default for AmbiguousWidthTreatment

Source§

fn default() -> Self

Returns the default treatment for ambiguous width characters.

The default is Narrow, which treats ambiguous characters as having width 1. This is the most common behavior in terminal applications.

Source§

impl PartialEq for AmbiguousWidthTreatment

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for AmbiguousWidthTreatment

Source§

impl Eq for AmbiguousWidthTreatment

Source§

impl StructuralPartialEq for AmbiguousWidthTreatment

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