[][src]Crate rebound

A crate aiming to implement 'full' reflection in Rust.

Re-exports

pub use crate::reflect::Reflected;
pub use error::Error;
pub use ty::Type;
pub use value::Value;

Modules

__helpers

Common macros used to generate closures with variable number if internal arguments.

error

Error utilities for rebound

info

Implementations of the various items that Types may possess. These items tend to support the kind of operations that can be performed on that item during compile time, such as calling a function or retrieving the value of a field.

reflect

Reflection related traits

tr

Runtime information about a Trait

ty

Runtime information about a type

utils

Some helpful utilities for working with reflected Types in various situations

value

Dynamically typed, lifetime safe values

Macros

__make_ref_accessor

Generate an accessor for a value on a type

__make_setter

Generate a setter for a value on a type

impl_common

Implement CommonTypeInfo for a given struct

init_tys

Generate code to pre-initialize types, including references and pointers to the type

Structs

AssocConst

Info about a constant on a Type. Allows getting the Value of this constant, assuming the reflection was configured to allow it.

AssocFn

Info about an associated function on a Type, either dynamic or static. Allows calling the function, assuming reflection was configured to allow it.

Field

Info about a field on a Type, either named or unnamed. Allows getting a reference to or setting the content of this field on a Value, assuming the reflection was configured to allow it.

UnionField

Info about a field on a union Type. Separate from a normal Field due to the unsafety of accessing/setting union fields. Allows getting a reference to or setting the content of this field on a Value, assuming the reflection was configured to allow it.

Enums

FieldKind

Info about different kinds of Fields

Variant

Info about a variant on an enum Type. Allows accessing the name and fields of the given variant.

Functions

init_base

Pre-initialize some common primitive types