pub enum ValidationError {
OutOfRange {
field: String,
value: u64,
max: u64,
},
InvalidAlignment {
address: u64,
required_alignment: u64,
},
InvalidAccessType {
bits: u8,
},
InvalidSecurityState {
bits: u8,
},
InvalidTranslationStage {
bits: u8,
},
InvalidFaultType {
code: u8,
},
InvalidStateTransition {
from: String,
to: String,
},
PermissionDenied {
requested: String,
available: String,
},
SecurityViolation {
from_state: String,
to_state: String,
},
InvalidConfiguration {
reason: String,
},
InvalidPASID {
value: u32,
},
Generic {
field: String,
value: String,
constraint: String,
},
}Expand description
Validation error for newtype wrapper construction and operations
Provides detailed context about validation failures including:
- Field name (e.g., StreamID, PASID)
- Invalid value that was provided
- Constraint that was violated
- Specific error types for different validation scenarios
§Examples
use smmu::ValidationError;
let error = ValidationError::OutOfRange {
field: "PASID".to_string(),
value: 1_048_576,
max: 1_048_575,
};
println!("Validation failed: {}", error);Variants§
OutOfRange
Value is out of the valid range
InvalidAlignment
Address is not properly aligned
Fields
InvalidAccessType
Invalid access type bit pattern
InvalidSecurityState
Invalid security state encoding
InvalidTranslationStage
Invalid translation stage configuration
InvalidFaultType
Invalid fault type code
InvalidStateTransition
Invalid state transition
PermissionDenied
Permission denied
SecurityViolation
Security violation
InvalidConfiguration
Invalid configuration
InvalidPASID
Invalid PASID value
Generic
Generic validation error (for backward compatibility)
Implementations§
Trait Implementations§
Source§impl Clone for ValidationError
impl Clone for ValidationError
Source§fn clone(&self) -> ValidationError
fn clone(&self) -> ValidationError
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ValidationError
impl Debug for ValidationError
Source§impl<'de> Deserialize<'de> for ValidationError
impl<'de> Deserialize<'de> for ValidationError
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for ValidationError
impl Display for ValidationError
Source§impl Error for ValidationError
Available on crate feature std only.
impl Error for ValidationError
Available on crate feature
std only.1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Source§impl From<ValidationError> for ConfigurationError
impl From<ValidationError> for ConfigurationError
Source§fn from(error: ValidationError) -> Self
fn from(error: ValidationError) -> Self
Converts to this type from the input type.
Source§impl PartialEq for ValidationError
impl PartialEq for ValidationError
Source§impl Serialize for ValidationError
impl Serialize for ValidationError
impl Eq for ValidationError
impl StructuralPartialEq for ValidationError
Auto Trait Implementations§
impl Freeze for ValidationError
impl RefUnwindSafe for ValidationError
impl Send for ValidationError
impl Sync for ValidationError
impl Unpin for ValidationError
impl UnsafeUnpin for ValidationError
impl UnwindSafe for ValidationError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more