1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! [![crates.io](https://meritbadge.herokuapp.com/turbonone)](https://crates.io/crates/turbonone)
//! [![docs.rs](https://docs.rs/turbonone/badge.svg)](https://docs.rs/turbonone/)
//! [![license](https://img.shields.io/crates/l/turbonone)](https://github.com/WilliamVenner/turbonone/blob/master/LICENSE)
//!
//! Tiny macro for calling functions with generic `Option<T>` arguments.
//!
//! ## Usage
//! 
//! Add to your [Cargo.toml](https://doc.rust-lang.org/cargo/reference/manifest.html) file:
//! 
//! ```toml
//! [dependencies]
//! turbonone = "0.*"
//! ```
//!
//! ## The Problem
//!
//! ```ignore
//! # extern crate core;
//! # extern crate turbonone;
//! # use turbonone::turbonone;
//! fn my_function<T>(arg: Option<T>) -> &'static str {
//!     "Works!"
//! }
//! 
//! my_function(None); // cannot infer type for type parameter `T` declared on the associated function `my_function`
//! my_function(Some("An argument")); // Works!
//! ```
//! 
//! ## The Solution
//! 
//! ```rust
//! # extern crate core;
//! # extern crate turbonone;
//! # #[macro_use]
//! use turbonone::turbonone;
//! 
//! fn my_function<T>(arg: Option<T>) -> &'static str {
//!     "Works!"
//! }
//! 
//! my_function(turbonone!()); // Works!
//! my_function(Some("An argument")); // Works!
//! ```

#![no_std]
#[macro_export]
/// ```ignore
/// #![no_std]
/// #[macro_export]
/// macro_rules! turbonone { () => { ::core::option::Option::None::<()> } }
/// ```
macro_rules! turbonone { () => { ::core::option::Option::None::<()> } }