Skip to content

Instantly share code, notes, and snippets.

@bitemyapp
Created July 26, 2026 03:49
Show Gist options
  • Select an option

  • Save bitemyapp/4dfdd1fab983e314df56675dcb548126 to your computer and use it in GitHub Desktop.

Select an option

Save bitemyapp/4dfdd1fab983e314df56675dcb548126 to your computer and use it in GitHub Desktop.
use range_validate_derive::RangeValidate;
struct Range {
lo: i32,
hi: i32,
}
#[derive(RangeValidate)]
struct Config {
#[range(Range { lo: 1, hi: 65_535 })]
port: i32,
#[range(Range { lo: 1, hi: 256 })]
max_threads: i32,
#[range(Range {
lo: 100,
hi: 30_000,
})]
timeout_ms: i32,
}
const _: () = {
assert!(
Config {
port: 1_000,
max_threads: 50,
timeout_ms: 20_000,
}
.validate()
);
assert!(
!Config {
port: 0,
max_threads: 0,
timeout_ms: 0,
}
.validate()
);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment