Expand description
  facet-types

Thanks to all individual and corporate sponsors, without whom this work could not exist:
Defines the core types used throughout the facet ecosystem for runtime reflection:
Shape
: The central type that describes the memory layout and capabilities of a type- Various vtables that define how to manipulate types at runtime
- The
Def
tree, which describes type definitions (structs, enums, etc.)
This crate is foundational to facet’s reflection capabilities, providing the type system that enables safe runtime type manipulation.
§Key Components
- Memory layout information (size, alignment, etc.)
- Type definition hierarchies
- Runtime type manipulation vtables
- Safe type erasure primitives
§License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option. structs and vtable definitions used by Facet
Structs§
- EnumDef
- Fields for enum types
- Enum
DefBuilder - Builder for EnumDef
- Field
- Describes a field in a struct or tuple
- Field
Builder - Builder for Field
- Field
Flags - Flags that can be applied to fields to modify their behavior
- Hasher
Proxy - Provides an implementation of
core::hash::Hasher
for a given hasher pointer and write function - ListDef
- Fields for list types
- List
DefBuilder - Builder for ListDef
- ListV
Table - Virtual table for a list-like type (like
Vec<T>
, but alsoHashSet<T>
, etc.) - ListV
Table Builder - Builds a
ListVTable
- MapDef
- Fields for map types
- MapDef
Builder - Builder for MapDef
- MapIterV
Table - VTable for an iterator over a map
- MapIterV
Table Builder - Builds a
MapIterVTable
- MapV
Table - Virtual table for a Map<K, V>
- MapV
Table Builder - Builds a
MapVTable
- Marker
Traits - Bitflags for common marker traits that a type may implement
- Scalar
Def - Definition for scalar types
- Scalar
DefBuilder - Builder for ScalarDef
- Shape
- Schema for reflection of a type
- Shape
Builder - Builder for
Shape
- Struct
Def - Common fields for struct-like types
- Struct
DefBuilder - Builder for StructDef
- Type
Name Opts - Options for formatting the name of a type
- ValueV
Table - VTable for common operations that can be performed on any shape
- ValueV
Table Builder - Builds a
ValueVTable
- Variant
- Describes a variant of an enum
- Variant
Builder - Builder for Variant
Enums§
- Characteristic
- A characteristic a shape can have
- Def
- The definition of a shape: is it more like a struct, a map, a list?
- Enum
Repr - All possible representations for Rust enums
- Field
Attribute - An attribute that can be set on a field
- Field
Error - Errors encountered when calling
field_by_index
orfield_by_name
- Parse
Error - Error returned by
ParseFn
- Struct
Kind - Describes the kind of struct (useful for deserializing)
- TryFrom
Error - Error type for TryFrom conversion failures
- Variant
Kind - Represents the different kinds of variants that can exist in a Rust enum
Functions§
- clone_
into_ fn_ for - Generates a [
CloneInPlaceFn
] for a concrete type - cmp_
fn_ for - Generates a
CmpFn
for a concrete type - debug_
fn_ for - Generates a
DebugFn
for a concrete type - default_
in_ place_ fn_ for - Generates a
DefaultInPlaceFn
for a concrete type - display_
fn_ for - Generates a
DisplayFn
for a concrete type - drop_
in_ place_ fn_ for - Generates a
DropInPlaceFn
for a concrete type - hash_
fn_ for - Generates a
HashFn
for a concrete type - parse_
fn_ for - Generates a
ParseFn
for a concrete type - partial_
eq_ fn_ for - Generates a
PartialEqFn
for a concrete type - partial_
ord_ fn_ for - Generates a
PartialOrdFn
for a concrete type
Type Aliases§
- Clone
Into Fn - Function to clone a value into another already-allocated value
- CmpFn
- Function to compare two values and return their ordering
- DebugFn
- Function to format a value for debug. If this returns None, the shape did not implement Debug.
- Default
InPlace Fn - Function to set a value to its default in-place
- Display
Fn - Function to format a value for display
- Drop
InPlace Fn - Function to drop a value
- HashFn
- Function to hash a value
- Hasher
Write Fn - Function to write bytes to a hasher
- List
GetItem PtrFn - Get pointer to the item at the given index. Panics if out of bounds.
- List
Init InPlace With Capacity Fn - Initialize a list in place with a given capacity
- List
LenFn - Get the number of items in the list
- List
Push Fn - Push an item to the list
- MapContains
KeyFn - Check if the map contains a key
- MapGet
Value PtrFn - Get pointer to a value for a given key, returns None if not found
- MapInit
InPlace With Capacity Fn - Initialize a map in place with a given capacity
- MapInsert
Fn - Insert a key-value pair into the map
- MapIter
Dealloc Fn - Deallocate the iterator
- MapIter
Fn - Get an iterator over the map
- MapIter
Next Fn - Get the next key-value pair from the iterator
- MapLen
Fn - Get the number of entries in the map
- ParseFn
- Function to parse a value from a string.
- Partial
EqFn - Function to check if two values are partially equal
- Partial
OrdFn - Function to compare two values and return their ordering if comparable
- TryFrom
Fn - Function to try converting from another type
- Type
Name Fn - A function that formats the name of a type.