Validation
Field Validators
- class pystructs.validate.Range(min_val: float | None = None, max_val: float | None = None)[source]
Validate that a numeric value is within a range.
- Examples:
>>> version = UInt8(validators=[Range(1, 10)])
- class pystructs.validate.OneOf(choices: List[Any])[source]
Validate that a value is one of allowed choices.
- Examples:
>>> msg_type = UInt8(validators=[OneOf([1, 2, 3])])
Struct Validators
- class pystructs.validate.Consistency(field: str, equals: Expression | None = None, greater_than: Expression | None = None, less_than: Expression | None = None)[source]
Validate consistency between fields.
Compares a field’s value against an expression.
- Examples:
>>> class Packet(Struct): ... class Meta: ... validators = [ ... Consistency('payload_size', equals=Len('payload')), ... Consistency('checksum', equals=Checksum('payload', 'crc32')), ... ]