semantics-derive

Crates.iosemantics-derive
lib.rssemantics-derive
version0.1.0
sourcesrc
created_at2022-07-07 15:01:30.705761
updated_at2022-07-07 15:01:30.705761
descriptionSemantics mapping; derive proc-macro
homepagehttps://github.com/phaazon/semantics
repositoryhttps://github.com/phaazon/semantics
max_upload_size
id621222
size6,282
Dimitri Sabadie (hadronized)

documentation

https://docs.rs/semantics-derive

README

Semantics

The term semantics here is used to describe a value / type that strongly represents something else, tracking its type in the type-system and carrying its representation as an integer value at runtime. Semantics allow to represent something meaningful, like a user, a field, etc. by using integers underneath. The target audience is people writing protocols between two systems that are using two different namespaces.

The main motivation for this crate is luminance, which needs to be able to represent attributes (vertex attribute like a position, normal, color; fragment outputs, etc.) in two different namespaces:

  • The Rust code, where those attributes are manipulated via regular Rust variables.
  • GLSL code, which might use different names for those variables.

Semantics allow an indirection for both systems to “speak the same language” and “represent the same data.”

Commit count: 1

cargo fmt