#ergonomically #flags #tries #micro-crate #forbid

to_method

一个用于更便捷地使用 Into 的实用型微库

2 个稳定版本

1.1.0 2021 年 5 月 17 日
1.0.0 2021 年 4 月 25 日

#580 in 算法

Download history 10731/week @ 2024-01-09 11970/week @ 2024-01-16 13137/week @ 2024-01-23 11823/week @ 2024-01-30 12580/week @ 2024-02-06 14237/week @ 2024-02-13 13911/week @ 2024-02-20 14617/week @ 2024-02-27 15450/week @ 2024-03-05 17544/week @ 2024-03-12 18181/week @ 2024-03-19 15688/week @ 2024-03-26 16557/week @ 2024-04-02 15983/week @ 2024-04-09 18999/week @ 2024-04-16 21207/week @ 2024-04-23

74,923 每月下载量
47 个crate(2 个直接使用) 中使用

CC0 许可证

6KB

to_method

一个用于更便捷地使用 Into 的实用型微库。

它提供了一个 To 扩展特质,包含一个 .to() 方法,您可以使用此方法在指定目标类型的同时调用 Into::into,而不必放弃方法调用语法。

作为一个微库,它尽量成为尽可能好的依赖项,并具有以下特点:

  • 没有自己的依赖项
  • 没有功能标志
  • 没有 build.rs
  • #![无_std]
  • #![禁止(不安全代码)]

常规 Into 使用

let x : u8 = 5;

// The type parameter is on `Into`, not on `Into::into`,
// so we need to do it like this:
let y = Into::<u16>::into(x);

// Depending on context, inference can make this work though:
let z : u32 = y.into();

通过 To

use to_method::To as _;

let x : u8 = 5;

// The type parameter is on the `to` method, so this works:
let y = x.to::<u16>();

// And you can still rely on inference as well:
let z : u32 = y.to();

没有运行时依赖