Skip to main content

Module packet

Module packet 

Source
Expand description

数据包:引用计数共享的不可变 payload + 时间戳。

引擎不解释 payload 内容,只搬引用、只按 type_id 做相等性校验。 三种 payload 形态:

  • Native —— Rust 侧构造的任意类型(类型擦除)
  • Builtin —— 引擎分配的内建类型,跨语言约定布局(标量/字节/字符串/N 维缓冲)
  • Foreign —— 外部(C/C++)构造:裸指针 + drop_fn

内建 payload 支持写时复制(CoW)。显式 adopt 的外部 BUFFER 也支持: 独占且可写时原地返回,READONLY 或共享时按描述符复制成引擎缓冲。 普通 Foreign 只有 drop_fn、无从复制;Native 是类型擦除的 Box<dyn Any>,同理。

Modules§

dtype
LMFLOW_DTYPE_*
type_id
内建类型标识,与 include/flow.h 的 LMFLOW_TYPE_* 一致。0..15 为内建保留。

Structs§

BufferData
N 维带步长缓冲。引擎分配的缓冲总是连续、行优先。
Foreign
外部(C/C++)构造的 payload:引擎只持指针,引用归零时回调 drop_fn。
Packet
TypeDescriptor
A registered custom type’s cross-language identity and fixed payload layout.

Enums§

Builtin
Payload

Constants§

MAX_DIMS

Traits§

InteropType
A Rust type with an explicitly declared cross-language representation.

Functions§

dtype_size
单个元素的字节数;未知 dtype 返回 0。
fnv1a_type_id
计算与 C++ 糖层一致的类型标识。
register_type_descriptor
Strictly register a custom type’s stable name and ABI layout.
type_descriptor
type_name
类型标识的可读名字 —— 让「类型不符」的报错能指出是什么类型,而不是两个数字。