| 99 | |
| 100 | impl ModelValidator<MetadataError> for Metadata { |
| 101 | fn validate(&self) -> ModelValidatorResult<MetadataError> { |
| 102 | if self.metadata.len() > Self::MAX_METADATA as usize { |
| 103 | return Err(MetadataError::ValidationError { |
| 104 | info: format!( |
| 105 | "Metadata count exceeds the maximum allowed: {}", |
| 106 | Self::MAX_METADATA |
| 107 | ), |
| 108 | }); |
| 109 | } |
| 110 | |
| 111 | for (k, v) in self.metadata.iter() { |
| 112 | if k.len() > Self::MAX_METADATA_KEY_LEN as usize { |
| 113 | return Err(MetadataError::ValidationError { |
| 114 | info: format!( |
| 115 | "Metadata key length exceeds the maximum allowed: {}", |
| 116 | Self::MAX_METADATA_KEY_LEN |
| 117 | ), |
| 118 | }); |
| 119 | } |
| 120 | |
| 121 | if v.len() > Self::MAX_METADATA_VALUE_LEN as usize { |
| 122 | return Err(MetadataError::ValidationError { |
| 123 | info: format!( |
| 124 | "Metadata value length exceeds the maximum allowed: {}", |
| 125 | Self::MAX_METADATA_VALUE_LEN |
| 126 | ), |
| 127 | }); |
| 128 | } |
| 129 | } |
| 130 | |
| 131 | Ok(()) |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | #[cfg(test)] |