Export and document range macro

This commit is contained in:
Steven Fackler
2014-01-22 20:32:27 -08:00
parent 5f65010b1e
commit 2364a23924

View File

@@ -1,4 +1,45 @@
//! 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 mod 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];
extern mod extra;
@@ -8,6 +49,7 @@ use std::i32;
use std::i64;
use extra::time::Timespec;
#[macro_export]
macro_rules! range(
(empty) => (Range::empty());
('(', ')') => (Range::new(None, None));