pub struct FontFamilyAliasSet { /* private fields */ }
Expand description

Represents a set of font family aliases, and optionally, typeface properties that should be applied when treating those aliases as the canonical family.

For example, the font family "Roboto" might have one alias set of the form:

{
  "names": [ "Roboto Condensed" ],
  "width": "condensed"
}

This means that when a client requests the family "Roboto Condensed", the font server will treat that as a request for "Roboto" with Width::Condensed.

The font family "Noto Sans CJK" might have aliases of the form:

[
  {
    "names": [ "Noto Sans CJK KR", "Noto Sans KR" ],
    "languages": [ "ko" ]
  },
  {
    "names": [ "Noto Sans CJK JP", "Noto Sans JP" ],
    "languages: [ "ja" ]
  }
]

When a client requests "Noto Sans CJK JP" or "Noto Sans JP", the font server will look under "Noto Sans CJK" for typefaces that support Japanese ("ja").

Create using FontFamilyAliasSet::new if the aliases will map to typeface property overrides, or FontFamilyAliasSet::without_overrides to create a plain set of aliases.

When loaded by the font server, a FontFamilyAliasSet is expanded over all the names, creating an alias entry for every name, with identical style and languages values.

Implementations§

source§

impl FontFamilyAliasSet

source

pub fn new( names: impl IntoIterator<Item = impl AsRef<str>>, style: impl Into<StyleOptions>, languages: impl IntoIterator<Item = impl AsRef<str>> ) -> Result<Self, Error>

Create a new FontFamilyAliasSet with one or more names, and with optional style and language overrides.

  • names: A list of one more alias names
  • style: Optionally, style overrides that are automatically applied to the typeface request when one of the names is requested.
  • languages: Optionally, a list of language codes that is automatically applied to the typeface request when one of the names is requested. Do not sort the language codes. They are given in priority order, just as in TypefaceQuery.languages.

Examples:

use manifest::v2::FontFamilyAliasSet;
use manifest::serde_ext::StyleOptions;

// Alias set for "Noto Sans CJK" for Traditional Chinese. Both `"Noto Sans CJK TC"` and
// `"Noto Sans TC"` will serve as aliases that apply the languages `["zh-Hant", "zh-Bopo"]`
// when requested.
FontFamilyAliasSet::new(
    vec!["Noto Sans CJK TC", "Noto Sans TC"],
    StyleOptions::default(),
    vec!["zh-Hant", "zh-Bopo"]);

// Alias set for "Roboto Condensed". `"Roboto Condensed"` will serve as an alias that
// applies the style options `width: condensed` when requested.
FontFamilyAliasSet::new(
    vec!["Roboto Condensed"],
    StyleOptions {
        width: Some(fidl_fuchsia_fonts::Width::Condensed),
        ..Default::default()
    },
    vec![]);
source

pub fn without_overrides( names: impl IntoIterator<Item = impl AsRef<str>> ) -> Result<Self, Error>

Create a new FontFamilyAliasSet with one or more names, with no typeface property overrides.

source

pub fn names(&self) -> impl Iterator<Item = &String>

Gets the alias names in this set.

source

pub fn style_overrides(&self) -> &StyleOptions

Gets the style property overrides for this set of aliases (may be empty).

source

pub fn language_overrides(&self) -> impl Iterator<Item = &String>

Gets the language code overrides for this set of aliases (may be empty).

source

pub fn has_overrides(&self) -> bool

Whether the alias set has any property overrides. If false, it’s just a name alias.

source

pub fn has_style_overrides(&self) -> bool

Whether the alias set has style overrides.

source

pub fn has_language_overrides(&self) -> bool

Whether the alias set has language overrides.

Trait Implementations§

source§

impl Clone for FontFamilyAliasSet

source§

fn clone(&self) -> FontFamilyAliasSet

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 FontFamilyAliasSet

source§

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

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

impl<'de> Deserialize<'de> for FontFamilyAliasSet

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for FontFamilyAliasSet

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for FontFamilyAliasSet

source§

fn eq(&self, other: &FontFamilyAliasSet) -> 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 Serialize for FontFamilyAliasSet

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for FontFamilyAliasSet

source§

impl StructuralPartialEq for FontFamilyAliasSet

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
§

impl<T> Encode<Ambiguous1> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T> Encode<Ambiguous2> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,