Skip to main content

fnv1a_type_id

Function fnv1a_type_id 

Source
pub fn fnv1a_type_id(mangled_name: &str) -> u64
Expand description

计算与 C++ 糖层一致的类型标识。

flow.hpp 里 lmflow::TypeId<T>() = NormalizeTypeId(Fnv1a(typeid(T).name())), 参数就是修饰名(Itanium ABI 下 int 是 "i"、double 是 "d"、 std::string 是 "NSt7__cxx1112basic_string...")。

Rust 宿主要送一个 C++ 算子能按类型读取的包时,优先让类型实现 InteropType 并用 Packet::from_interop;底层 unsafe Packet::new_interop 可直接接收本函数 算出的 id。C++ 侧用 LMFLOW_DECLARE_TYPE_NAME 声明同一个稳定名字即可对齐。