首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Rust 日报】2023-07-23 交互式UI框架

【Rust 日报】2023-07-23 交互式UI框架

作者头像
MikeLoveRust
发布2023-09-26 17:55:49
发布2023-09-26 17:55:49
3040
举报

交互式UI框架

使用 Rust 语言编写的Modular UI编译器和运行时库。

示例:

代码语言:javascript
复制
#[composable]
fn counter(interval: Duration) {
    let count = compose!(remember(move || {
        let count = State::new(0);

        let timer_count = count.clone();
        concoct::spawn(async move {
            loop {
                sleep(interval).await;
                timer_count.update(|count| *count += 1);
            }
        });

        count
    }));

    text(*count.get());
}

#[composable]
fn app() {
    compose!(counter(Duration::from_secs(1)));
    compose!(counter(Duration::from_secs(2)));
}

// ...

GitHub: https://github.com/concoct-rs/concoct

时区解析库rtz

rtz 是一个极快的时区解析引擎。这是一个用Rust语言编写的库、二进制文件和服务器(也可以通过Wasm使用)。你可以使用这个库,运行自己的服务器,或者也可以使用作者在fly.io上设置的免费服务器。

使用示例(二进制):

代码语言:javascript
复制
$ rtz resolve "-87.62,41.88"

Friendly Name:   America/Chicago
UTC Offset:      UTC-06:00
Offset Seconds:  -21600
Description:     Canada (almost all of Saskatchewan), Costa Rica, El Salvador, Ecuador (Galapagos Islands), Guatemala, Honduras, Mexico (most), Nicaragua,
DST Description: Canada (Manitoba), United States (Illinois, most of Texas)

使用示例(Rust):

代码语言:javascript
复制
use rtzlib::base::geo::get_timezone;

// Query a time zone for a given `(lng,lat)`.
assert_eq!(
    get_timezone(-121., 46.)
        .unwrap()
        .friendly_name
        .as_ref()
        .unwrap(),
    "America/Los_Angeles"
);

使用示例(JS):

代码语言:javascript
复制
import * as rtz from 'rtzweb/rtzlib.js';

let tz = rtz.getTimeZone(-121, 46);
tz.friendly_name; // "America/Los_Angeles"

GitHub: https://github.com/twitchax/rtz

交互式dot图

Demo: https://azriel.im/dot_ix/

GitHub: https://github.com/azriel91/dot_ix

Trie实现

Trie(字典树)数据结构用于快速访问与单词及其相关数据相关联的内容。

基本的 Trie 被实现为一棵树,每个节点包含一个字符,并且可以指向任何其他字符,因此可以插入任意的单词。每个节点还包含与之相关联的数据的向量。

GitHub: https://github.com/lukascobbler/basic_trie

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-24 18:06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 交互式UI框架
  • 交互式dot图
  • Trie实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档