Skip to content

Commit 2364a23

Browse files
committed
Export and document range macro
1 parent 5f65010 commit 2364a23

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

types/range.rs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,45 @@
11
//! Types dealing with ranges of values
2+
//!
3+
//! # Macros
4+
//!
5+
//! The `quote!` macro can make it easier to create ranges. It roughly mirrors
6+
//! traditional mathematic range syntax.
7+
//!
8+
//! # Note
9+
//!
10+
//! The `Range`, `RangeBound`, `Inclusive`, and `Exclusive` types must be
11+
//! directly usable at the location the macro is used.
12+
//!
13+
//! ```rust
14+
//! #[feature(phase)];
15+
//!
16+
//! #[phase(syntax, link)]
17+
//! extern mod postgres;
18+
//!
19+
//! use postgres::types::range::{Range, RangeBound, Inclusive, Exclusive};
20+
//!
21+
//! fn main() {
22+
//! # let mut r: Range<i32>;
23+
//! // a closed interval
24+
//! r = range!('[' 5i32, 10i32 ']');
25+
//! // an open interval
26+
//! r = range!('(' 5i32, 10i32 ')');
27+
//! // half-open intervals
28+
//! r = range!('(' 5i32, 10i32 ']');
29+
//! r = range!('[' 5i32, 10i32 ')');
30+
//! // a closed lower-bounded interval
31+
//! r = range!('[' 5i32, ')');
32+
//! // an open lower-bounded interval
33+
//! r = range!('(' 5i32, ')');
34+
//! // a closed upper-bounded interval
35+
//! r = range!('(', 10i32 ']');
36+
//! // an open upper-bounded interval
37+
//! r = range!('(', 10i32 ')');
38+
//! // an unbounded interval
39+
//! r = range!('(', ')');
40+
//! // an empty interval
41+
//! r = range!(empty);
42+
//! }
243
#[macro_escape];
344

445
extern mod extra;
@@ -8,6 +49,7 @@ use std::i32;
849
use std::i64;
950
use extra::time::Timespec;
1051

52+
#[macro_export]
1153
macro_rules! range(
1254
(empty) => (Range::empty());
1355
('(', ')') => (Range::new(None, None));

0 commit comments

Comments
 (0)