Enum wdl_analysis::Type
source · pub enum Type {
Primitive(PrimitiveType),
Compound(CompoundType),
Object,
OptionalObject,
Union,
None,
}Expand description
Represents a WDL type.
Variants§
Primitive(PrimitiveType)
The type is a primitive type.
Compound(CompoundType)
The type is a compound type.
Object
The type is Object.
OptionalObject
The type is Object?.
Union
A special hidden type for a value that may have any one of several concrete types.
This variant is also used to convey an “indeterminate” type; an indeterminate type may result from a previous type error.
None
A special type that behaves like an optional Union.
Implementations§
source§impl Type
impl Type
sourcepub fn from_ast_v1<F>(
types: &mut Types,
ty: Type,
lookup: &F,
) -> Result<Self, Diagnostic>
pub fn from_ast_v1<F>( types: &mut Types, ty: Type, lookup: &F, ) -> Result<Self, Diagnostic>
Creates a new type from an V1 AST representation of a type.
The provided callback is used to look up type name references.
If a type could not created, an error with the relevant diagnostic is returned.
Trait Implementations§
source§impl Coercible for Type
impl Coercible for Type
source§fn is_coercible_to(&self, types: &Types, target: &Self) -> bool
fn is_coercible_to(&self, types: &Types, target: &Self) -> bool
Determines if the type is coercible to the target type.
source§impl From<PrimitiveType> for Type
impl From<PrimitiveType> for Type
source§fn from(value: PrimitiveType) -> Self
fn from(value: PrimitiveType) -> Self
Converts to this type from the input type.
source§impl From<PrimitiveTypeKind> for Type
impl From<PrimitiveTypeKind> for Type
source§fn from(value: PrimitiveTypeKind) -> Self
fn from(value: PrimitiveTypeKind) -> Self
Converts to this type from the input type.
source§impl From<Type> for FunctionalType
impl From<Type> for FunctionalType
impl Copy for Type
impl Eq for Type
impl StructuralPartialEq for Type
Auto Trait Implementations§
impl Freeze for Type
impl RefUnwindSafe for Type
impl Send for Type
impl Sync for Type
impl Unpin for Type
impl UnwindSafe for Type
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)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
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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