luaur-analysis 0.1.3

Luau type checker and type inference (Rust).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
//! Source: `Analysis/include/Luau/Def.h:73-77` (hand-ported)
use crate::type_aliases::def_id_def::DefId;
use crate::type_aliases::variant::VariantMember;

/// C++ `template<typename T> const T* get(DefId def)`.
pub fn get_def_id<T: VariantMember>(def: DefId) -> *const T {
    unsafe {
        match T::get_if(&(*def).v) {
            Some(r) => r as *const T,
            None => core::ptr::null(),
        }
    }
}