#compiler #mark #type #case #trait #documentation #void

void

The uninhabited void type for use in statically impossible cases

8 releases (3 stable)

1.0.2 Apr 18, 2016
1.0.1 Feb 16, 2016
0.0.5 Jul 15, 2015
0.0.4 Jun 2, 2015
0.0.2 Feb 10, 2015
Download history 67888/week @ 2019-11-08 67970/week @ 2019-11-15 65361/week @ 2019-11-22 65574/week @ 2019-11-29 72032/week @ 2019-12-06 73977/week @ 2019-12-13 46656/week @ 2019-12-20 51138/week @ 2019-12-27 69127/week @ 2020-01-03 75508/week @ 2020-01-10 74579/week @ 2020-01-17 77217/week @ 2020-01-24 79735/week @ 2020-01-31 86717/week @ 2020-02-07 76125/week @ 2020-02-14

277,761 downloads per month
Used in 2,152 crates (150 directly)

MIT license

5KB
77 lines

Void

The uninhabited void type for use in statically impossible cases.

Documentation

The uninhabited type, enum Void { } is useful in dealing with cases you know to be impossible. For instance, if you are implementing a trait which allows for error checking, but your case always succeeds, you can mark the error case or type as Void, signaling to the compiler it can never happen.

This crate also comes packed with a few traits offering extension methods to Result<T, Void> and Result<Void, T>.

Usage

Use the crates.io repository; add this to your Cargo.toml along with the rest of your dependencies:

[dependencies]
void = "1"

Then, use Void in your crate:

extern crate void;
use void::Void;

Author

Jonathan Reem is the primary author and maintainer of void.

License

MIT


lib.rs:

Void

The uninhabited void type for use in statically impossible cases.

In its own crate so all the users in the ecosystem can share the same type. This crate also comes ready with several extension traits for Result that add extra functionality to Result<T, Void> and Result<Void, E>.

No runtime deps