Export and document range macro
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user