#可读性 #选项 # #类型 #生成 #工程师 #Z世代

genztools

为Z世代工程师提供Result和Option类型的可读性工具

7 个版本

0.1.6 2024年2月19日
0.1.5 2024年2月19日

#788Rust 模式

GPL-3.0-or-later

22KB
216

GenZTools

Crates.io Version docs.rs

让 Rust 对即将到来的 Rust 工程师一代更加易用和可读

示例

之前

let is_logged_in = get_user().await.ok().flatten().is_some();

之后

let is_logged_in = get_user().await.bet().on_a_stack().no_cap();

之前

let new_thing = my_opt.map(|x| transform(x)).unwrap_or_default();

之后

let new_thing = my_opt.glow_up(|x| transform(x)).on_god_or_basic();

lib.rs:

让 Rust 对即将到来的 Rust 工程师一代更加易用和可读

提供常用 OptionResult 方法的替代方法名

示例

use genztools::*;

let user_from_db: Result<Option<&str>, &str> = Ok(Some("username"));
// let is_logged_in = user_from_db.ok().flatten().is_some();
let is_logged_in = user_from_db.bet().on_a_stack().no_cap();

let known_failure: Result<(), &str> = Err("sussy af fr fr");
// assert_eq!(known_failure.unwrap_err(), "sussy af fr fr");
assert_eq!(known_failure.big_yikes(), "sussy af fr fr");

let my_opt: Option<i64> = Some(-3);
// let num = my_opt.map(|x| x * x).unwrap_or_default();
let num = my_opt.glow_up(|x| x * x).on_god_or_basic();

无运行时依赖