solana_binary_encoder/
sanitize.rs

1
2use thiserror::Error;
3
4#[derive(PartialEq, Debug, Error, Eq, Clone)]
5pub enum SanitizeError {
6    #[error("index out of bounds")]
7    IndexOutOfBounds,
8    // #[error("value out of bounds")]
9    // ValueOutOfBounds,
10    #[error("invalid value")]
11    InvalidValue,
12}
13
14/// A trait for sanitizing values and members of over-the-wire messages.
15pub trait Sanitize {
16    fn sanitize(&self) -> Result<(), SanitizeError> {
17        Ok(())
18    }
19}
20
21impl<T: Sanitize> Sanitize for Vec<T> {
22    fn sanitize(&self) -> Result<(), SanitizeError> {
23        for x in self.iter() {
24            x.sanitize()?;
25        }
26        Ok(())
27    }
28}