Skip to main content

FontStyle

Enum FontStyle 

Source
pub enum FontStyle {
    Normal,
    Italic,
    Oblique(Option<f32>),
}
Expand description

Visual style or “slope” of a font.

In variable fonts, this can be controlled with the ital and slnt axes for italic and oblique styles, respectively.

In CSS, this corresponds to the font-style property: https://www.w3.org/TR/css-fonts-4/#font-style-prop.

Variants§

§

Normal

An upright or “roman” style.

§

Italic

Generally a slanted style, originally based on semi-cursive forms.

This often has a different structure from the normal style.

§

Oblique(Option<f32>)

oblique with an optional angle in degrees.

If None, the engine-specific default oblique angle is used.

Implementations§

Source§

impl FontStyle

Source

pub fn parse_css(s: &str) -> Option<FontStyle>

Parses a CSS font-style value.

Supported syntax (after trimming ASCII whitespace):

  • normalFontStyle::Normal
  • italicFontStyle::Italic
  • obliqueFontStyle::Oblique(Some(14.0))
  • oblique <angle> where <angle> is one of:
    • <number>deg
    • <number>grad (gradians, converted to degrees)
    • <number>rad (radians, converted to degrees)
    • <number>turn (turns, converted to degrees)

If an oblique <angle> form is present but the angle cannot be parsed, this returns Some(FontStyle::Oblique(None)).

This parser is case-sensitive.

use parlance::FontStyle;

assert_eq!(FontStyle::parse_css("normal"), Some(FontStyle::Normal));
assert_eq!(FontStyle::parse_css("italic"), Some(FontStyle::Italic));
assert_eq!(
    FontStyle::parse_css("oblique"),
    Some(FontStyle::Oblique(Some(14.0)))
);
assert_eq!(
    FontStyle::parse_css("oblique 30deg"),
    Some(FontStyle::Oblique(Some(30.0)))
);
assert_eq!(
    FontStyle::parse_css("oblique banana"),
    Some(FontStyle::Oblique(None))
);
assert_eq!(FontStyle::parse_css("banana"), None);

Trait Implementations§

Source§

impl Clone for FontStyle

Source§

fn clone(&self) -> FontStyle

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 FontStyle

Source§

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

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

impl Default for FontStyle

Source§

fn default() -> FontStyle

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

impl Display for FontStyle

Source§

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

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

impl FromFontconfig for FontStyle

Source§

fn from_fontconfig(slant: i32) -> Self

Creates a new style attribute with the given value from Fontconfig.

The values are determined based on the fonts.conf documentation: https://www.freedesktop.org/software/fontconfig/fontconfig-user.html.

Source§

impl PartialEq for FontStyle

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 FontStyle

Source§

impl StructuralPartialEq for FontStyle

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.