位置: 首页 > 资讯 > > 正文

【Rust日报】2023-06-27 Zellij 支持使用 Rust Sdk 来开发 WebAssembly 插件 环球热点评

2023-06-28 01:14:05 来源:互联网

Zellij 支持使用 Rust Sdk 来开发 WebAssembly 插件

Zellij 是一个类似 tmux 的终端复用器,并且提供了插件的能力。


【资料图】

插件可以编程式地管理用户的工作区(窗格、选项卡、命令、编辑器),并在特定事件(文件访问、按键、命令结束等)时被唤醒。

其近日发布了最新的插件系统,提供了一个 Rust SDK(zellij-tile)来开发 Rust 插件(其他语言即将推出!)。

与传统的终端应用程序不同,Zellij 插件不需要管理自己的输出缓冲区,相反,它可以在需要呈现其 UI 组件的位置进行渲染; Zellij 还为插件提供了访问后台工作程序以执行长时间运行的任务(例如大型搜索查询)的功能。

原文链接:https://zellij.dev/news/new-plugin-system/

示例插件 monocle:https://github.com/imsnif/monocle

示例插件 multitask

Rust 中的代码覆盖率

代码覆盖率是一种度量代码保护程度的指标,一般而言,覆盖率越高代表着代码越值得信赖。

根据测量单元的不同,可以有下面几种级别划分:

函数覆盖率:衡量定义的函数在程序执行期间实际调用的程度的重要指标

语句覆盖率:用于评估程序运行时执行语句的程度的基本指标。

分支覆盖率:评估测试套件执行代码分叉的程度的关键指标。

条件覆盖率:用于评估测试在涵盖布尔子表达式的所有可能结果方面的充分性的指标。

本文介绍了,在 1.60 版本之后,如何使用 Rust 和 LLVM 工具来生成代码覆盖率报告,包括启用编译时代码覆盖率、执行性能测试程序等步骤,并使用例如 grcov 这样的工具生成可视化报告。

文章还提到了一个名为 Tarpaulin 的强大工具,可以帮助开发者更加便捷地生成代码覆盖率报告,下面是使用cargo-tarpaulin运行覆盖率报告的示例:

cargo tarpaulinJun 18 16:54:56.341 INFO cargo_tarpaulin::config: Creating configJun 18 16:54:56.433 INFO cargo_tarpaulin: Running TarpaulinJun 18 16:54:56.433 INFO cargo_tarpaulin: Building projectJun 18 16:54:56.433 INFO cargo_tarpaulin::cargo: Cleaning project Compiling rust_sandbox v0.1.0 (/home/imrubensi/rust_sandbox) Finished test [unoptimized + debuginfo] target(s) in 0.35sJun 18 16:54:56.907 INFO cargo_tarpaulin::process_handling::linux: Launching testJun 18 16:54:56.907 INFO cargo_tarpaulin::process_handling: running /home/imrubensi/rust_sandbox/target/debug/deps/rust_sandbox-0bab96c8aa79a774running 1 testtest tests::it_works ... oktest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02sJun 18 16:54:57.137 INFO cargo_tarpaulin::report: Coverage Results:|| Uncovered Lines:|| Tested/Total Lines:|| src/lib.rs: 4/4|| 100.00% coverage, 4/4 lines covered

原文链接:https://rrmprogramming.com/article/code-coverage-in-rust/

grcov

tarpaulin

Slint 发布 1.1 版本

伴随着更加友好的协议,Slint 这个广受欢迎的 UI 库发布了 1.1 版本。

这个版本中,带来了一系列更新和改进,例如:

通过tr宏可以轻松完成翻译的功能(基于 gettext),例如Text { text: @tr("Hello, World"); }

基于 Microsoft 发布的fluent2手册进一步对齐 fluent UI 风格

引入新的 widget 组件,例如Switch和ProgressIndicator

OpenGL 的集成

同事,Slint 的协议在 GPLv3 协议的基础上进一步开放,允许在桌面或者 web 应用中集成并发布,但不允许单独发布而不将其集成到应用程序中。

Slint 更新日志:https://slint.dev/blog/slint-1.1-released

Slint 协议更新

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

Rust.cc 论坛: 支持 rss

微信公众号:Rust 语言中文社区

Rust语言中文社区视频号live上线啦,以后会不定时直播Rust活动,欢迎关注

关键词:

上一篇:盐水冲洗能否降低术后胆总管结石复发率
下一篇:最后一页