#statically #cases #error #extension #enums #impossible #uninhabited

no-std void

The uninhabited void type for use in statically impossible cases

8 releases (3 stable)

Uses old Rust 2015

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

#194 in Rust patterns

Download history 347832/week @ 2024-06-14 354332/week @ 2024-06-21 331286/week @ 2024-06-28 338232/week @ 2024-07-05 349906/week @ 2024-07-12 353817/week @ 2024-07-19 354269/week @ 2024-07-26 365427/week @ 2024-08-02 415203/week @ 2024-08-09 384441/week @ 2024-08-16 395980/week @ 2024-08-23 375709/week @ 2024-08-30 413959/week @ 2024-09-06 368176/week @ 2024-09-13 424996/week @ 2024-09-20 326887/week @ 2024-09-27

1,613,269 downloads per month
Used in 5,217 crates (300 directly)

MIT license

5KB
76 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

Features