Macro expected_status_codes

Source
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);