astroport_circular_buffer/
error.rs1use cosmwasm_std::StdError;
2use thiserror::Error;
3
4pub type BufferResult<R> = Result<R, BufferError>;
5
6#[derive(Error, Debug, PartialEq)]
8pub enum BufferError {
9 #[error("{0}")]
10 Std(#[from] StdError),
11
12 #[error("Can't reduce capacity because buffer contains key(s) greater than new head")]
13 ReduceCapacityError {},
14
15 #[error("Can't save value at index {0} which greater than capacity")]
16 SaveValueError(u32),
17
18 #[error("Can't read value at index {0} which greater than capacity")]
19 ReadAheadError(u32),
20
21 #[error("Index {0} not found")]
22 IndexNotFound(u32),
23
24 #[error("Buffer not initialized")]
25 BufferNotInitialized {},
26
27 #[error("Buffer already initialized")]
28 BufferAlreadyInitialized {},
29}
30
31impl From<BufferError> for StdError {
32 fn from(value: BufferError) -> Self {
33 match value {
34 BufferError::Std(err) => err,
35 _ => StdError::generic_err(value.to_string()),
36 }
37 }
38}
39
40#[cfg(test)]
41mod testing {
42 use super::*;
43
44 #[test]
45 fn test_buffer_error() {
46 let err = BufferError::Std(StdError::generic_err("test"));
47 let std_err: StdError = err.into();
48 assert_eq!(std_err, StdError::generic_err("test"));
49
50 let custom_err = BufferError::ReduceCapacityError {};
51 let std_err: StdError = custom_err.into();
52 assert_eq!(
53 std_err,
54 StdError::generic_err(
55 "Can't reduce capacity because buffer contains key(s) greater than new head"
56 )
57 );
58 }
59}