pub enum Ty {
Show 19 variants
Any,
Boolean(Option<bool>),
Builtin(BuiltinTy),
Value(Interned<InsTy>),
Param(Interned<ParamTy>),
Union(Interned<Vec<Ty>>),
Let(Interned<TypeBounds>),
Var(Interned<TypeVar>),
Dict(Interned<RecordTy>),
Array(Interned<Ty>),
Tuple(Interned<Vec<Ty>>),
Func(Interned<SigTy>),
Args(Interned<ArgsTy>),
Pattern(Interned<PatternTy>),
With(Interned<SigWithTy>),
Select(Interned<SelectTy>),
Unary(Interned<TypeUnary>),
Binary(Interned<TypeBinary>),
If(Interned<IfTy>),
}Expand description
All possible types in tinymist.
Variants§
Any
A top type, whose negation is bottom type.
t := top, t^- := bottom
Boolean(Option<bool>)
A boolean type, can be false, true, or both (boolean type).
t := false | true
Builtin(BuiltinTy)
All possible types in typst.
Value(Interned<InsTy>)
A possible typst instance of some type.
Param(Interned<ParamTy>)
A parameter type
Union(Interned<Vec<Ty>>)
A union type, whose negation is intersection type.
t := t1 | t2 | ... | tn, t^- := t1 & t2 & ... & tn
Let(Interned<TypeBounds>)
A frozen type variable.
t :> t1 | t2 | ... | tn <: f1 & f2 & ... & fn
Var(Interned<TypeVar>)
An opening type variable owing bounds.
Dict(Interned<RecordTy>)
A typst dictionary type.
Array(Interned<Ty>)
An array type.
Tuple(Interned<Vec<Ty>>)
A tuple type. Note: may contains spread types.
Func(Interned<SigTy>)
A function type.
Args(Interned<ArgsTy>)
An argument type.
Pattern(Interned<PatternTy>)
A pattern type.
With(Interned<SigWithTy>)
A partially applied function type.
Select(Interned<SelectTy>)
Select a field from a type.
Unary(Interned<TypeUnary>)
A unary operation.
Binary(Interned<TypeBinary>)
A binary operation.
If(Interned<IfTy>)
A conditional type.
Implementations§
Source§impl Ty
impl Ty
Sourcepub fn call(
&self,
args: &Interned<ArgsTy>,
pol: bool,
c: &mut impl ApplyChecker,
)
pub fn call( &self, args: &Interned<ArgsTy>, pol: bool, c: &mut impl ApplyChecker, )
Calls the given type with the given arguments.
Sourcepub fn tuple_element_of(&self, pol: bool, c: &mut impl ApplyChecker)
pub fn tuple_element_of(&self, pol: bool, c: &mut impl ApplyChecker)
Gets the tuple element type of the given type.
Sourcepub fn element_of(&self, pol: bool, c: &mut impl ApplyChecker)
pub fn element_of(&self, pol: bool, c: &mut impl ApplyChecker)
Get the element type of the given type.
Source§impl Ty
impl Ty
Sourcepub fn has_bounds(&self) -> bool
pub fn has_bounds(&self) -> bool
Checks if the given type has bounds (is combinated).
Sourcepub fn bounds(&self, pol: bool, checker: &mut impl BoundChecker)
pub fn bounds(&self, pol: bool, checker: &mut impl BoundChecker)
Profiles the bounds of the given type.
Source§impl Ty
impl Ty
Sourcepub fn from_cast_info(ty: &CastInfo) -> Ty
pub fn from_cast_info(ty: &CastInfo) -> Ty
Converts a cast info to a type.
Sourcepub fn from_param_site(func: &Func, param: &ParamInfo) -> Ty
pub fn from_param_site(func: &Func, param: &ParamInfo) -> Ty
Converts a parameter site to a type.
Source§impl Ty
impl Ty
Sourcepub fn union(lhs: Option<Ty>, rhs: Option<Ty>) -> Option<Ty>
pub fn union(lhs: Option<Ty>, rhs: Option<Ty>) -> Option<Ty>
Creates a union type from two types.
Sourcepub fn from_types(iter: impl ExactSizeIterator<Item = Ty>) -> Self
pub fn from_types(iter: impl ExactSizeIterator<Item = Ty>) -> Self
Creates a union type from an iterator of types.
Sourcepub fn iter_union(iter: impl IntoIterator<Item = Ty>) -> Self
pub fn iter_union(iter: impl IntoIterator<Item = Ty>) -> Self
Creates a union type from an iterator of types.
Sourcepub const fn undef() -> Self
pub const fn undef() -> Self
Creates an undefined type (which will emit an error). A that type is annotated if the syntax structure causes an type error.
Sourcepub fn satisfy<T: TyCtx>(&self, ctx: &T, f: impl FnMut(&Ty, bool))
pub fn satisfy<T: TyCtx>(&self, ctx: &T, f: impl FnMut(&Ty, bool))
Checks a type against a context.
Sourcepub fn is_content<T: TyCtx>(&self, ctx: &T) -> bool
pub fn is_content<T: TyCtx>(&self, ctx: &T) -> bool
Checks if the type is a content type.
Source§impl Ty
impl Ty
Sourcepub fn iface_surface(&self, pol: bool, checker: &mut impl IfaceChecker)
pub fn iface_surface(&self, pol: bool, checker: &mut impl IfaceChecker)
Iterates over the signatures of the given type.
Source§impl Ty
impl Ty
Sourcepub fn sig_surface(
&self,
pol: bool,
sig_kind: SigSurfaceKind,
checker: &mut impl SigChecker,
)
pub fn sig_surface( &self, pol: bool, sig_kind: SigSurfaceKind, checker: &mut impl SigChecker, )
Iterate over the signatures of the given type.
Trait Implementations§
Source§impl Internable for Ty
impl Internable for Ty
fn storage() -> &'static InternStorage<Self>
Source§impl Ord for Ty
impl Ord for Ty
Source§impl PartialOrd for Ty
impl PartialOrd for Ty
impl Eq for Ty
impl StructuralPartialEq for Ty
Auto Trait Implementations§
impl Freeze for Ty
impl !RefUnwindSafe for Ty
impl Send for Ty
impl Sync for Ty
impl Unpin for Ty
impl !UnwindSafe for Ty
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
§impl<S, T> ArcInto<T> for S
impl<S, T> ArcInto<T> for S
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<T> CallHasher for T
impl<T> CallHasher for T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Filterable for T
impl<T> Filterable for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> InternSize for T
impl<T> InternSize for T
const INTERN_SIZE: usize = const INTERN_SIZE: usize = std::mem::size_of::<T>();
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more