[][src]Crate dync

Overview

This crate aims to fill the gap in Rust's dynamic traits system by exposing the control over dynamic virtual function tables to the user in a safe API. Below is a list of capabilities unlocked by dync.

  • Create homogeneous untyped Vecs that store a single virtual function table for all contained elements. This functionality is enabled by the traits feature. For more details see vec_dyn.

Re-exports

pub use downcast_rs as downcast;
pub use index_slice::*;

Modules

index_slice
macros

Utility macros for code generation.

traits

This module defines the function pointers for supported traits from the standard library.

Macros

call_numeric_buffer_fn

Applies $fn to an VecCopy mapping valid numeric data types by corresponding generic parameters. For example, passing an VecCopy containing data of type u8 will cause this macro to call $fn with type parameter u8 like $fn::<u8>(buffer).

eval_align
from_dyn

Convert a given container with a dynamic vtable to a concrete type.

into_dyn

Convert a given container type (e.g. VecCopy or SliceDyn) to have a dynamic VTable.

Structs

CopyValueMut

A generic mutable Copy value reference.

CopyValueRef

A generic value reference to a Copy type.

Meta

Defines a meta struct containing information about a type but not the type itself.

Slice
SliceCopy
SliceCopyMut
SliceMut
Value
ValueMut

A generic mutable value reference into a buffer.

ValueRef

A generic value reference into a buffer.

VecCopy

Buffer of untyped Copy values.

VecDyn

Enums

Error
VTableRef

A VTable reference type.

Traits

CopyElem
DropAsAligned
Elem
GetBytesMut
GetBytesRef
VTable

VTable defines a type that represents a virtual function table for some type T.

Type Definitions

BoxValue
SliceDrop
SliceMutDrop
SmallValue
VecDrop

Attribute Macros

dync_mod
dync_trait