#events #meta #map #times #wars #guild #collect

gw2timers

迭代并收集《剑网2》地图元事件时间

6个版本 (3个重大变更)

0.4.1 2022年3月28日
0.4.0 2021年6月23日
0.3.1 2021年6月21日
0.2.0 2021年6月18日
0.1.0 2021年6月18日

#869 in 数据结构

MIT 协议

59KB
1.5K SLoC

GW2timers

一种简单的方法来迭代和收集《剑网2》地图元事件时间

示例

获取奥里安盆地接下来的5个即将发生的事件

fn main() {
    let next_5_auricbasin_events =
        MapMetaKind::AuricBasin
            .into_iter()
            .take(5)
            .collect::<Vec<EventInstance>>();
}

用法

通过在 into_iter() 上调用 MapMetaKind 来创建一个迭代器,然后你可以设置迭代开始的时间,然后像其他任何迭代器一样使用它。迭代器永远不会返回 None,并且会无限迭代,总是返回下一个事件。

从指定时间开始创建迭代器

let mut tangled_depths_5am_utc =
    MapMetaKind::TangledDepths
        .into_iter()
        .time(NaiveTime::from_hms(5, 0, 0));

通过时间向前跳过

let mut tangled_depths_6am_utc =
    tangled_depths_5am_utc
    .fast_forward(Duration::hours(1));

获取迭代器在该时间激活的事件

let tangled_depths_event_at_6am_utc: Option<EventInstance> =
    tangled_depths_6am_utc
    .now();

许可证

MIT

依赖关系

~1MB
~18K SLoC