pub enum ConsensusError {
Show 16 variants
Io(Error),
InvalidNetworkStatusVersion(String),
InvalidVoteStatus(String),
InvalidTimestamp(String),
InvalidVotingDelay(String),
InvalidFingerprint(String),
InvalidIpAddress(AddrParseError),
InvalidPort(ParseIntError),
InvalidBandwidth(String),
InvalidFlag(String),
InvalidProtocolVersion(String),
InvalidBase64(String),
InvalidSignature(String),
MissingRequiredField(String),
TimestampOrderingViolation(String),
InvalidLineFormat {
line: usize,
reason: String,
},
}Expand description
Errors that can occur when parsing network status consensus documents.
This error type provides specific information about what went wrong during consensus parsing, making it easier to diagnose and fix issues with malformed consensus documents.
§Example
use stem_rs::descriptor::ConsensusError;
fn handle_consensus_error(err: ConsensusError) {
match err {
ConsensusError::InvalidFingerprint(fp) => {
eprintln!("Invalid relay fingerprint: {}", fp);
}
ConsensusError::TimestampOrderingViolation(msg) => {
eprintln!("Timestamp ordering issue: {}", msg);
}
_ => eprintln!("Consensus parse error: {}", err),
}
}Variants§
Io(Error)
IO error occurred while reading consensus data.
InvalidNetworkStatusVersion(String)
Network status version is not supported.
InvalidVoteStatus(String)
Vote status field has invalid value.
InvalidTimestamp(String)
Timestamp format is invalid or unparseable.
InvalidVotingDelay(String)
Voting delay line has wrong number of values.
InvalidFingerprint(String)
Relay fingerprint format is invalid.
InvalidIpAddress(AddrParseError)
IP address format is invalid.
InvalidPort(ParseIntError)
Port number is invalid or out of range.
InvalidBandwidth(String)
Bandwidth value is invalid or unparseable.
InvalidFlag(String)
Relay flag is not recognized.
InvalidProtocolVersion(String)
Protocol version string is malformed.
InvalidBase64(String)
Base64 encoding is invalid.
InvalidSignature(String)
Cryptographic signature is invalid.
MissingRequiredField(String)
Required field is missing from consensus.
TimestampOrderingViolation(String)
Timestamps are not in correct order (valid-after < fresh-until < valid-until).
InvalidLineFormat
Line format is invalid at specific location.