pub enum ProtocolError {
Show 18 variants
InvalidSignature,
NonceReused,
TimestampOutdated,
ContentNotFound(String),
ChunkNotFound(u64),
EncryptionError(String),
DecryptionError(String),
NetworkError(String),
DatabaseError(String),
ValidationError(String),
PeerNotFound(String),
InsufficientStorage,
BandwidthLimitExceeded,
RateLimitExceeded,
InvalidProtocolVersion(String),
ConnectionFailed(String),
Timeout(String),
Unauthorized(String),
}Expand description
Protocol-level errors.
§Examples
use chie_shared::ProtocolError;
// Network error example
fn connect_to_peer(peer_id: &str) -> Result<(), ProtocolError> {
if peer_id.is_empty() {
return Err(ProtocolError::PeerNotFound("empty peer ID".to_string()));
}
Ok(())
}
// Content lookup error
fn get_content(cid: &str) -> Result<Vec<u8>, ProtocolError> {
if cid.starts_with("Qm") {
Ok(vec![1, 2, 3])
} else {
Err(ProtocolError::ContentNotFound(cid.to_string()))
}
}
// Rate limiting
fn check_rate_limit(request_count: u32) -> Result<(), ProtocolError> {
if request_count > 100 {
Err(ProtocolError::RateLimitExceeded)
} else {
Ok(())
}
}
assert!(connect_to_peer("12D3Koo").is_ok());
assert!(get_content("QmTest").is_ok());
assert!(check_rate_limit(50).is_ok());
assert!(check_rate_limit(150).is_err());Variants§
InvalidSignature
NonceReused
TimestampOutdated
ContentNotFound(String)
ChunkNotFound(u64)
EncryptionError(String)
DecryptionError(String)
NetworkError(String)
DatabaseError(String)
ValidationError(String)
PeerNotFound(String)
InsufficientStorage
BandwidthLimitExceeded
RateLimitExceeded
InvalidProtocolVersion(String)
ConnectionFailed(String)
Timeout(String)
Trait Implementations§
Source§impl Debug for ProtocolError
impl Debug for ProtocolError
Source§impl Display for ProtocolError
impl Display for ProtocolError
Source§impl Error for ProtocolError
impl Error for ProtocolError
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 ProtocolError
impl From<ValidationError> for ProtocolError
Source§fn from(err: ValidationError) -> Self
fn from(err: ValidationError) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for ProtocolError
impl RefUnwindSafe for ProtocolError
impl Send for ProtocolError
impl Sync for ProtocolError
impl Unpin for ProtocolError
impl UnwindSafe for ProtocolError
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