Move docs onto macro

This commit is contained in:
Steven Fackler 2014-02-20 09:19:08 -08:00
parent fac02dd19a
commit 721288a024

View File

@ -1,45 +1,4 @@
//! Types dealing with ranges of values //! Types dealing with ranges of values
//!
//! # Macros
//!
//! The `quote!` macro can make it easier to create ranges. It roughly mirrors
//! traditional mathematic range syntax.
//!
//! # Note
//!
//! The `Range`, `RangeBound`, `Inclusive`, and `Exclusive` types must be
//! directly usable at the location the macro is used.
//!
//! ```rust
//! #[feature(phase)];
//!
//! #[phase(syntax, link)]
//! extern crate postgres;
//!
//! use postgres::types::range::{Range, RangeBound, Inclusive, Exclusive};
//!
//! fn main() {
//! # let mut r: Range<i32>;
//! // a closed interval
//! r = range!('[' 5i32, 10i32 ']');
//! // an open interval
//! r = range!('(' 5i32, 10i32 ')');
//! // half-open intervals
//! r = range!('(' 5i32, 10i32 ']');
//! r = range!('[' 5i32, 10i32 ')');
//! // a closed lower-bounded interval
//! r = range!('[' 5i32, ')');
//! // an open lower-bounded interval
//! r = range!('(' 5i32, ')');
//! // a closed upper-bounded interval
//! r = range!('(', 10i32 ']');
//! // an open upper-bounded interval
//! r = range!('(', 10i32 ')');
//! // an unbounded interval
//! r = range!('(', ')');
//! // an empty interval
//! r = range!(empty);
//! }
#[macro_escape]; #[macro_escape];
extern crate extra; extern crate extra;
@ -49,6 +8,46 @@ use std::i32;
use std::i64; use std::i64;
use extra::time::Timespec; use extra::time::Timespec;
/// The `quote!` macro can make it easier to create ranges. It roughly mirrors
/// traditional mathematic range syntax.
///
/// # Note
///
/// The `Range`, `RangeBound`, `Inclusive`, and `Exclusive` types must be
/// directly usable at the location the macro is used.
///
/// # Example
///
/// ```rust
/// #[feature(phase)];
///
/// #[phase(syntax, link)]
/// extern crate postgres;
///
/// use postgres::types::range::{Range, RangeBound, Inclusive, Exclusive};
///
/// fn main() {
/// # let mut r: Range<i32>;
/// // a closed interval
/// r = range!('[' 5i32, 10i32 ']');
/// // an open interval
/// r = range!('(' 5i32, 10i32 ')');
/// // half-open intervals
/// r = range!('(' 5i32, 10i32 ']');
/// r = range!('[' 5i32, 10i32 ')');
/// // a closed lower-bounded interval
/// r = range!('[' 5i32, ')');
/// // an open lower-bounded interval
/// r = range!('(' 5i32, ')');
/// // a closed upper-bounded interval
/// r = range!('(', 10i32 ']');
/// // an open upper-bounded interval
/// r = range!('(', 10i32 ')');
/// // an unbounded interval
/// r = range!('(', ')');
/// // an empty interval
/// r = range!(empty);
/// }
#[macro_export] #[macro_export]
macro_rules! range( macro_rules! range(
(empty) => (Range::empty()); (empty) => (Range::empty());