23个稳定版本
新 2.9.0 | 2024年8月22日 |
---|---|
2.8.0 | 2024年7月23日 |
2.7.0 | 2024年1月16日 |
2.6.0 | 2023年10月3日 |
0.3.1 | 2019年2月26日 |
在 游戏 中排名第 21
每月下载量 1,067
被 14 个crate(10 个直接使用)使用
190KB
4.5K SLoC
rbx_dom_weak
有关此crate的更多信息,请访问 rbx-dom GitHub。
Roblox的DOM的弱类型实现,用于在外部工具中表示实例。
覆盖率
由于rbx_dom_weak是弱类型的,所以当Roblox中添加新实例时,无需更新。但是,当添加新数据类型(如 Vector3int16
)时,需要更新。
lib.rs
:
rbx_dom_weak是Rust的Roblox DOM的通用表示。它旨在与借用检查器良好配合,并允许以常数时间通过ID访问实例。
通过首先创建一个描述实例树的 InstanceBuilder
对象,然后使用 WeakDom
对其进行包装,来实现新实例树的构建。
use rbx_dom_weak::{InstanceBuilder, WeakDom};
let dm = InstanceBuilder::new("DataModel");
let mut dom = WeakDom::new(dm);
println!("ID of DOM root is {:?}", dom.root_ref());
一旦我们有一个树,我们就可以使用 WeakDom::insert
和 WeakDom::get_by_ref
将实例添加到树中并检索它们。
use rbx_dom_weak::{InstanceBuilder, WeakDom};
let mut dom = WeakDom::new(InstanceBuilder::new("DataModel"));
// We can define properties using any type that can be converted to an
// rbx_dom_weak::types::Variant.
let http_service = InstanceBuilder::new("HttpService")
.with_property("HttpEnabled", true);
let http_service_id = dom.insert(dom.root_ref(), http_service);
println!("HttpService has ID {:?}", http_service_id);
要更改树中已存在的实例的属性,请使用 WeakDom::get_by_ref_mut
。请注意,此方法无法添加或删除子元素,请使用 WeakDom::insert
和 WeakDom::destroy
代替。
依赖关系
~2.4–3.5MB
~78K SLoC