#chain #converter #convert

convert-chain

一个简单的链式转换器

2个版本

0.1.3 2023年5月26日
0.1.2 2023年5月26日
0.1.1 2023年5月26日
0.1.0 2023年5月25日

1297过程宏

每月38次下载

MIT 许可证

5KB
54

convert-chain

Crates.io docs.rs Crates.io Crates.io

一个用于链式类型转换的小型crate。其中只有一个宏 convert_chian

假设有三个具有以下关系的结构。

struct A;
struct B;
struct C;

impl From<B> for A { ... }
impl From<C> for B { ... }

你可以使用这个宏直接转换一个表达式或创建一个转换的闭包。

  • 直接转换

    let c = C;
    let a = convert_chain!(c; B, A);
    
  • 创建闭包

    let c = C;
    let f = convert_chain!(B, A);
    let a = f(c);
    

上述两种方法等价于

let c = C;
let a = A::from(B::from(c));

lib.rs:

convert-chain

Crates.io docs.rs Crates.io Crates.io

一个用于链式类型转换的小型crate。其中只有一个宏 convert_chian

假设有三个具有以下关系的结构。

struct A;
struct B;
struct C;

impl From<B> for A { ... }
impl From<C> for B { ... }

你可以使用这个宏直接转换一个表达式或创建一个转换的闭包。

  • 直接转换

    let c = C;
    let a = convert_chain!(c; B, A);
    
  • 创建闭包

    let c = C;
    let f = convert_chain!(B, A);
    let a = f(c);
    

上述两种方法等价于

let c = C;
let a = A::from(B::from(c));

依赖项

~295–750KB
~18K SLoC