5 个版本 (2 个稳定版)

1.1.0 2020 年 7 月 2 日
1.0.0 2020 年 3 月 17 日
0.2.1 2019 年 12 月 13 日
0.2.0 2019 年 12 月 13 日
0.1.0 2019 年 12 月 12 日

#752游戏开发

Download history · Rust 包仓库 62/week @ 2024-03-11 · Rust 包仓库 73/week @ 2024-03-18 · Rust 包仓库 58/week @ 2024-03-25 · Rust 包仓库 87/week @ 2024-04-01 · Rust 包仓库 43/week @ 2024-04-08 · Rust 包仓库 61/week @ 2024-04-15 · Rust 包仓库 60/week @ 2024-04-22 · Rust 包仓库 66/week @ 2024-04-29 · Rust 包仓库 59/week @ 2024-05-06 · Rust 包仓库 74/week @ 2024-05-13 · Rust 包仓库 74/week @ 2024-05-20 · Rust 包仓库 75/week @ 2024-05-27 · Rust 包仓库 56/week @ 2024-06-03 · Rust 包仓库 33/week @ 2024-06-10 · Rust 包仓库 49/week @ 2024-06-17 · Rust 包仓库 37/week @ 2024-06-24 · Rust 包仓库

每月 186 次下载
用于 kayak_ui

MIT/Apache

25KB
358

resources

Latest Version Documentation License CI

此包提供 Resources 结构体:一个容器,最多存储每种类型的单个值,并允许安全地、并发地访问任何一个值,同时不违反借用规则。

它旨在用作存储与 ECS(实体组件系统)中任何特定实体不相关联的数据的存储实现,但仍需要系统并发访问。

Cargo 功能

  • fetch - 当启用时,公开 Resources::fetch(),允许用一行代码检索最多 16 个资源。

示例

use resources::*;

struct SomeNumber(usize);

struct SomeString(&'static str);

fn main() {
    let mut resources = Resources::new();
    resources.insert(SomeNumber(4));
    resources.insert(SomeString("Hello!"));
    let resources = resources;  // This shadows the mutable binding with an immutable one.

    {
        let mut some_number = resources.get_mut::<SomeNumber>().unwrap();
        let mut some_string = resources.get_mut::<SomeString>().unwrap();

        // Immutably borrowing a resource that's already borrowed mutably is not allowed.
        assert!(resources.get::<SomeNumber>().is_err());

        some_number.0 = 2;
        some_string.0 = "Bye!";
    }

    // The mutable borrows now went out of scope, so it's okay to borrow again however needed.
    assert_eq!(resources.get::<SomeNumber>().unwrap().0, 2);

    // Multiple immutable borrows are okay.
    let some_string1 = resources.get::<SomeString>().unwrap();
    let some_string2 = resources.get::<SomeString>().unwrap();
    assert_eq!(some_string1.0, some_string2.0);
}

依赖项

~0.6–1MB
~15K SLoC