| //! A basic `Variable` implementation. |
| //! |
| //! Frontends can use any indexing scheme they see fit and |
| //! generate the appropriate `Variable` instances. |
| //! |
| //! Note: The `Variable` is used by Cranelift to index into densely allocated |
| //! arrays containing information about your mutable variables |
| //! Thus, make sure that Variable's indexes are allocated contiguously and |
| //! starting at `0`. |
| |
| use core::u32; |
| use cranelift_codegen::entity::entity_impl; |
| |
| /// An opaque reference to a variable. |
| #[derive(Copy, Clone, PartialEq, Eq)] |
| pub struct Variable(u32); |
| |
| entity_impl!(Variable, "var"); |
| |
| impl Variable { |
| /// Create a new Variable with the given index. |
| #[deprecated = "Use Variable::from_u32 instead"] |
| pub fn with_u32(index: u32) -> Self { |
| Variable::from_u32(index) |
| } |
| } |