Crate fusebox

source ·
Expand description

Mostly safe and sound append-only collection of trait objects

Why?

This avoids extra indirection of Vec<dyn Trait>

Usage

For foreigin types you have to use push! macro.

#![feature(ptr_metadata)]
let value = 69420usize;
let mut fb = FuseBox::<dyn Debug>::default();
push!(value, fb, Debug);

For your own types:

impl_as_dyn!(MyStruct => dyn Debug + 'static);
let value = MyStruct {};
let mut fb = FuseBox::default();
fb.push(value);

Re-exports

pub use fuse::FuseBox;

Modules

Macros

Helper macro for implementing AsDyn for use with safe FuseBox::push
Safe wrapper for FuseBox::push_safer

Traits