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

Download history 185/week @ 2024-05-02 300/week @ 2024-05-09 103/week @ 2024-05-16 156/week @ 2024-05-23 227/week @ 2024-05-30 236/week @ 2024-06-06 151/week @ 2024-06-13 330/week @ 2024-06-20 121/week @ 2024-06-27 213/week @ 2024-07-04 142/week @ 2024-07-11 435/week @ 2024-07-18 265/week @ 2024-07-25 199/week @ 2024-08-01 298/week @ 2024-08-08 211/week @ 2024-08-15

每月下载量 1,067
14crate(10 个直接使用)使用

MIT 许可协议

190KB
4.5K SLoC

rbx_dom_weak

rbx_dom_weak on crates.io rbx_dom_weak docs

有关此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::insertWeakDom::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::insertWeakDom::destroy 代替。

依赖关系

~2.4–3.5MB
~78K SLoC