macro_rules! expected_status_codes {
() => { ... };
($single:literal) => { ... };
($start:literal - $end:literal) => { ... };
($start:literal .. $end:literal) => { ... };
($first:literal, $($rest:tt)*) => { ... };
($start:literal - $end:literal, $($rest:tt)*) => { ... };
($start:literal .. $end:literal, $($rest:tt)*) => { ... };
(@accumulate $codes:ident,) => { ... };
(@accumulate $codes:ident, $single:literal) => { ... };
(@accumulate $codes:ident, $single:literal, $($rest:tt)*) => { ... };
(@accumulate $codes:ident, $start:literal - $end:literal) => { ... };
(@accumulate $codes:ident, $start:literal - $end:literal, $($rest:tt)*) => { ... };
(@accumulate $codes:ident, $start:literal .. $end:literal) => { ... };
(@accumulate $codes:ident, $start:literal .. $end:literal, $($rest:tt)*) => { ... };
(@accumulate $codes:ident) => { ... };
}
Expand description
Creates an ExpectedStatusCodes
instance with the specified status codes and ranges.
This macro provides a convenient syntax for defining expected HTTP status codes with support for individual codes, inclusive ranges, and exclusive ranges.
§Syntax
- Single codes:
200
,201
,404
- Inclusive ranges:
200-299
(includes both endpoints) - Exclusive ranges:
200..300
(excludes 300) - Mixed:
200, 201-204, 400..500
§Examples
use clawspec_core::expected_status_codes;
// Single status codes
let codes = expected_status_codes!(200, 201, 204);
// Ranges
let success_codes = expected_status_codes!(200-299);
let client_errors = expected_status_codes!(400..500);
// Mixed
let mixed = expected_status_codes!(200-204, 301, 302, 400-404);