pub enum ServerDescriptorError {
Show 15 variants
Io(Error),
InvalidRouterFormat {
actual: usize,
},
InvalidNickname(String),
InvalidIpAddress(AddrParseError),
InvalidPort(ParseIntError),
InvalidBandwidthFormat {
actual: usize,
},
InvalidBandwidth(String),
InvalidPublishedDate(String),
InvalidFingerprint(String),
InvalidRsaKey(String),
InvalidEd25519Identity(String),
InvalidExitPolicy(String),
InvalidProtocolVersion(String),
MissingRequiredField(String),
InvalidLineFormat {
line: usize,
reason: String,
},
}Expand description
Errors that can occur when parsing server descriptors.
Server descriptors contain full relay metadata including identity keys, exit policies, bandwidth information, and platform details.
§Example
use stem_rs::descriptor::ServerDescriptorError;
fn handle_server_error(err: ServerDescriptorError) {
match err {
ServerDescriptorError::InvalidNickname(nick) => {
eprintln!("Invalid relay nickname: {}", nick);
}
ServerDescriptorError::MissingRequiredField(field) => {
eprintln!("Missing required field: {}", field);
}
_ => eprintln!("Server descriptor parse error: {}", err),
}
}Variants§
Io(Error)
IO error occurred while reading descriptor data.
InvalidRouterFormat
Router line has wrong number of components.
InvalidNickname(String)
Relay nickname is invalid (must be 1-19 alphanumeric characters).
InvalidIpAddress(AddrParseError)
IP address format is invalid.
InvalidPort(ParseIntError)
Port number is invalid or out of range.
InvalidBandwidthFormat
Bandwidth line has wrong number of values.
InvalidBandwidth(String)
Bandwidth value is invalid or unparseable.
InvalidPublishedDate(String)
Published date format is invalid.
InvalidFingerprint(String)
Fingerprint format is invalid (must be 40 hex characters).
InvalidRsaKey(String)
RSA public key is malformed or invalid.
InvalidEd25519Identity(String)
Ed25519 identity key is invalid.
InvalidExitPolicy(String)
Exit policy format is invalid.
InvalidProtocolVersion(String)
Protocol version string is malformed.
MissingRequiredField(String)
Required field is missing from descriptor.
InvalidLineFormat
Line format is invalid at specific location.