Expand description
facet-core
Thanks to all individual and corporate sponsors, without whom this work could not exist:
Defines the core types adn traits used throughout the facet ecosystem for runtime reflection:
Facet: exposes aSHAPEassociated constShape: The central type that describes the memory layout and capabilities of a type- Various vtables that define how to manipulate types at runtime
- The
Deftree, which describes type definitions (structs, enums, etc.)
This crate is foundational to facet’s reflection capabilities, providing the type system that enables runtime type manipulation.
§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.
Modules§
- spez
- Auto-deref specialization helpers for the Facet reflection system
Macros§
- value_
vtable - Creates a
ValueVTablefor a given type.
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::Hasherfor 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
- Opaque
- A type-erased pointer to an initialized value
- Opaque
Const - A type-erased read-only pointer to an initialized value.
- Opaque
Uninit - A type-erased pointer to an uninitialized value
- Scalar
Def - Definition for scalar types
- Scalar
DefBuilder - Builder for ScalarDef
- Scalar
Id - Represents the unique identifier for a scalar type based on its fully qualified name.
- 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_indexorfield_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
Traits§
- Facet
- Allows querying the
Shapeof a type, which in turn lets us inspect any fields, build a value of this type progressively, etc. - Shape
Ext - Extension trait to provide
is_typeandassert_type
Functions§
- clone_
into_ fn_ for - Generates a [
CloneInPlaceFn] for a concrete type - cmp_
fn_ for - Generates a
CmpFnfor a concrete type - debug_
fn_ for - Generates a
DebugFnfor a concrete type - default_
in_ place_ fn_ for - Generates a
DefaultInPlaceFnfor a concrete type - display_
fn_ for - Generates a
DisplayFnfor a concrete type - drop_
in_ place_ fn_ for - Generates a
DropInPlaceFnfor a concrete type - hash_
fn_ for - Generates a
HashFnfor a concrete type - parse_
fn_ for - Generates a
ParseFnfor a concrete type - partial_
eq_ fn_ for - Generates a
PartialEqFnfor a concrete type - partial_
ord_ fn_ for - Generates a
PartialOrdFnfor 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.