#[non_exhaustive]pub enum IcfMeasurementError {
UnresolvedFont,
EmptyProbes,
NoProbeBounds,
NoUsableBounds,
}gpui only.Expand description
Why an ideographic character-face measurement could not produce an anchor.
The variants describe what was observable through gpui’s public API, not a
guessed platform cause. A backend may still substitute a missing glyph —
DirectWrite returns .notdef in gpui 0.2.2 — so successful measurement also
depends on supplying probes covered by the resolved face.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
UnresolvedFont
The RhythmFont was synthesized without a gpui TextSystem and
therefore has no resolved FontId to measure.
EmptyProbes
The probe string was empty.
NoProbeBounds
gpui returned an error instead of bounds for every probe.
On gpui 0.2.2’s CoreText and Linux backends, this is the result when the resolved face covers none of the supplied characters. Other backend errors can produce the same observable result.
NoUsableBounds
At least one probe returned bounds, but none were finite and spanned the alphabetic baseline.
This rejects both unsuitable glyphs and gpui 0.2.2’s Linux advance-only placeholder bounds.
Trait Implementations§
Source§impl Clone for IcfMeasurementError
impl Clone for IcfMeasurementError
Source§fn clone(&self) -> IcfMeasurementError
fn clone(&self) -> IcfMeasurementError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for IcfMeasurementError
Source§impl Debug for IcfMeasurementError
impl Debug for IcfMeasurementError
Source§impl Display for IcfMeasurementError
impl Display for IcfMeasurementError
impl Eq for IcfMeasurementError
Source§impl Error for IcfMeasurementError
impl Error for IcfMeasurementError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for IcfMeasurementError
impl PartialEq for IcfMeasurementError
impl StructuralPartialEq for IcfMeasurementError
Auto Trait Implementations§
impl Freeze for IcfMeasurementError
impl RefUnwindSafe for IcfMeasurementError
impl Send for IcfMeasurementError
impl Sync for IcfMeasurementError
impl Unpin for IcfMeasurementError
impl UnsafeUnpin for IcfMeasurementError
impl UnwindSafe for IcfMeasurementError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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