【Rust日报】2023-01-14 实验性的跨平台 UI 框架 viewbuilder
2023-03-07 09:14:37 时间
clap v4.1
CLI参数解析器clap发布 v4.1,一个小版本。主要改变是错误消息的改进。
v4.1文章链接,https://epage.github.io/blog/2023/01/clap-v4-1/
serde_json_borrow,更快的 JSON 反序列化
通过将 &'ctx str
解析为 Value<'ctx>
尝试引用原始字节,而不是将它们复制到字符串中来减少分配,从而实现更快的 JSON 反序列化。对于ndjson类型的 JSON, serde_json_borrow
的解析速度提高了 2 倍。
基准测试
Running benches/crit_bench.rs (/home/pascal/cargo_target_dir/release/deps/crit_bench-fd2d661e0b4255c5)
flat-json-to-doc/serde-json-owned
time: [352.60 µs 353.40 µs 354.26 µs]
thrpt: [236.01 MiB/s 236.59 MiB/s 237.12 MiB/s]
flat-json-to-doc/serde-json-borrowed
time: [175.53 µs 175.72 µs 175.93 µs]
thrpt: [475.23 MiB/s 475.81 MiB/s 476.34 MiB/s]
viewbuilder,实验性的跨平台 UI 框架
实验性的跨平台 UI 框架viewbuilder,具有基于 skia 的静态类型树,计划支持 accesskit。
fn counter(count: &mut i32) -> impl View<i32> {
container((
text(count.to_string()),
container((
button(text("More"), |count| *count += 1),
button(text("Less"), |count| *count -= 1),
))
))
}
pub trait View<T> {
type Widget: Widget;
fn is_changed(&self, last: &Self) -> bool;
fn handle(&mut self, state: &mut T, cx: EventContext<Self::Widget>);
fn build(&mut self) -> Self::Widget;
fn rebuild(&mut self, last: Self, widget: Self::Widget) -> Self::Widget
where
Self: Sized,
{
if self.is_changed(&last) {
widget
} else {
self.build()
}
}
}
pub trait Widget {
type Layout: Layout;
fn paint(&self, context: PaintContext<Self>)
where
Self: Sized;
fn layout(&mut self, taffy: &mut Taffy, scale_factor: f32) -> Self::Layout;
}
【2023 Week-2】Rust 视界周刊
本文为 2023 年 Rust 视界周刊第二期。Google 官宣在 Chromium 项目中支持使用 Rust。
原文链接,https://mp.weixin.qq.com/s/HmNsOfNe6O4pOywJt8VZpQ
相关文章
- 基于Web浏览器对音视频编解码的探索和实践
- 如何在 Linux 中实时监控日志文件(桌面和服务器)
- 跟着小白一起学鸿蒙之运行OpenHarmony
- Linux 开发者好消息!原生 .NET 6 在 Ubuntu 22.04 中可用
- 教你如何在 Linux 中禁止普通用户使用 su 命令
- TIOBE四月榜单:MATLAB 即将跌出前 20、Python 继续领跑
- 在 Linux 上截屏的三种方法
- OpenHarmony轻量设备Hi3861芯片开发板启动流程分析
- 微软 Windows 11/10 Edge 浏览器 Beta 105 发布(附更新内容)
- 为什么说 Manjaro 是基于 Arch Linux 的优秀发行版
- 前端架构设计中如何做好技术决策?
- Chrome 94新增的跨域策略深层次解读
- Google 想让 Linux 内核漏洞更难被利用
- 如何使用 Linux sed 命令自动进行文件编辑
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(代码补全篇)
- OpenHarmony视频播放器
- 分布式系统的特征、瓶颈以及性能指标介绍
- 所有程序员都应该知道的六个软件开发步骤
- 【系统服务】- OpenHarmony 串口服务访问
- 14天鸿蒙设备开发实战之设备联网上云笔记