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 crate 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- //! }
432#[ macro_escape] ;
443
454extern crate extra;
@@ -49,6 +8,46 @@ use std::i32;
498use std:: i64;
509use extra:: time:: Timespec ;
5110
11+ /// The `quote!` macro can make it easier to create ranges. It roughly mirrors
12+ /// traditional mathematic range syntax.
13+ ///
14+ /// # Note
15+ ///
16+ /// The `Range`, `RangeBound`, `Inclusive`, and `Exclusive` types must be
17+ /// directly usable at the location the macro is used.
18+ ///
19+ /// # Example
20+ ///
21+ /// ```rust
22+ /// #[feature(phase)];
23+ ///
24+ /// #[phase(syntax, link)]
25+ /// extern crate postgres;
26+ ///
27+ /// use postgres::types::range::{Range, RangeBound, Inclusive, Exclusive};
28+ ///
29+ /// fn main() {
30+ /// # let mut r: Range<i32>;
31+ /// // a closed interval
32+ /// r = range!('[' 5i32, 10i32 ']');
33+ /// // an open interval
34+ /// r = range!('(' 5i32, 10i32 ')');
35+ /// // half-open intervals
36+ /// r = range!('(' 5i32, 10i32 ']');
37+ /// r = range!('[' 5i32, 10i32 ')');
38+ /// // a closed lower-bounded interval
39+ /// r = range!('[' 5i32, ')');
40+ /// // an open lower-bounded interval
41+ /// r = range!('(' 5i32, ')');
42+ /// // a closed upper-bounded interval
43+ /// r = range!('(', 10i32 ']');
44+ /// // an open upper-bounded interval
45+ /// r = range!('(', 10i32 ')');
46+ /// // an unbounded interval
47+ /// r = range!('(', ')');
48+ /// // an empty interval
49+ /// r = range!(empty);
50+ /// }
5251#[ macro_export]
5352macro_rules! range(
5453 ( empty) => ( Range :: empty( ) ) ;
0 commit comments