9个版本 (2个稳定版)
1.1.0 | 2022年4月19日 |
---|---|
0.7.0 | 2022年4月18日 |
#1356 在 游戏开发
每月67 次下载
180KB
3K SLoC
gdvariants
Rust标准库集合包装器,实现了godot-rust变体特性,便于在使用godot-rust时使用。
在标准库实现之上实现的特性
- Export 用于属性特性的必要。
- FromVariant 用于将Godot类型转换为Rust类型。
- ToVariant 用于将Rust类型转换为Godot类型。
- Borrow 用于借用基本标准库类型。
- BorrowMut 用于以可变引用借用基本标准库类型。
- From 用于将标准库类型转换为gdvariant类型。
类型
- HashMap
- HashSet
- Vec
用法
将以下内容添加到您的 Cargo.toml
gdvariants = "*"
阅读godot-rust书籍 了解如何设置使用Rust的Godot项目。
属性
use gdnative::api::*;
use gdnative::prelude::*;
use gdvariants::collections::HashMap;
#[derive(NativeClass, Default)]
#[inherit(Node)]
pub struct ExampleHashMapProperty {
#[property]
players: HashMap<i64, String>,
}
网络
use gdnative::api::*;
use gdnative::prelude::*;
use gdvariants::collections::HashMap;
...
fn send_data(&mut self, owner: &Node) {
let mut data: HashMap<i64, i64> = HashMap::new();
data.insert(1, 0);
for player in self.players.keys() {
owner.rpc_id(*player, "data", &[data.to_variant()]);
}
}
use gdnative::api::*;
use gdnative::prelude::*;
use gdvariants::collections::HashMap;
...
fn receive_data(&mut self, owner: &Node, data: HashMap<i64, i64>) {
let mut data: HashMap<i64, i64> = HashMap::new();
data.insert(1, 0);
for player in self.players.keys() {
owner.rpc_id(*player, "data", &[data.to_variant()]);
}
}
crate功能
- serde: 为集合启用反序列化和序列化。
依赖关系
~8–15MB
~218K SLoC