pub enum Type {
Show 14 variants
ResolvedPath {
path: Path,
is_generic: bool,
},
DynTrait(Vec<PolyTrait>, Option<Lifetime>),
Generic(String),
Primitive(PrimitiveType),
BareFunction(Box<BareFunctionDecl>),
Tuple(Vec<Type>),
Slice(Box<Type>),
Array(Box<Type>, String),
Never,
RawPointer(Mutability, Box<Type>),
BorrowedRef {
lifetime: Option<Lifetime>,
mutability: Mutability,
type_: Box<Type>,
},
QPath {
name: String,
self_type: Box<Type>,
trait_: Box<Type>,
},
Infer,
ImplTrait(Vec<GenericBound>),
}Expand description
A representation of a type suitable for hyperlinking purposes. Ideally, one can get the original
type out of the AST/TyCtxt given one of these, if more information is needed. Most
importantly, it does not preserve mutability or boxes.
Variants§
ResolvedPath
Structs/enums/traits (most that would be an hir::TyKind::Path).
DynTrait(Vec<PolyTrait>, Option<Lifetime>)
dyn for<'a> Trait<'a> + Send + 'static
Generic(String)
For parameterized types, so the consumer of the JSON don’t go looking for types which don’t exist anywhere.
Primitive(PrimitiveType)
Primitives are the fixed-size numeric types (plus int/usize/float), char, arrays, slices, and tuples.
BareFunction(Box<BareFunctionDecl>)
extern "ABI" fn
Tuple(Vec<Type>)
Slice(Box<Type>)
Array(Box<Type>, String)
The String field is about the size or the constant representing the array’s length.
Never
RawPointer(Mutability, Box<Type>)
BorrowedRef
QPath
Infer
ImplTrait(Vec<GenericBound>)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Type
impl<'de> Deserialize<'de> for Type
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
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