rebound

Crates.iorebound
lib.rsrebound
version0.4.4
sourcesrc
created_at2020-12-05 03:46:43.933157
updated_at2022-09-06 16:50:05.927149
descriptionFull runtime reflection for Rust, with lifetime safety
homepage
repositoryhttps://github.com/CraftSpider/rebound
max_upload_size
id319798
size152,887
Rune Tynan (CraftSpider)

documentation

https://docs.rs/rebound

README

Rebound

crates.io Documentation MIT/Apache-2 licensed

A powerful, lifetime-safe runtime reflection system for Rust. Heavily WIP, requires nightly

Goals

Rebound aims to provide high-power runtime reflection. This includes two main features:

  • Reflect as much as possible. This means rebound is willing to trade some performance, code size, or simplicity in the name of increased power.
  • Follow Rust's lifetime and memory safety guarantees. As long as you are using the safe API, rebound should never cause segfaults or any other data race.

Features

Rebound currently provides these features:

  • A #[rebound] proc macro, which can be applied to any item rebound supports reflecting
  • Support for these items
    • Structs
    • Enums
    • Unions
    • All three kinds of generics
    • Impl Blocks
  • Support for these things is being worked on / considered
    • Traits
    • Top-level Functions
    • Statics
    • Consts
  • The Value type, an untyped smart pointer with lifetime safety.
  • Reflection of all primitive types, including the ! type
  • Reflection of the core and std builtin libraries, with feature-gates

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 124

cargo fmt