(self_id: &ArtifactId, hash: &[u8])
| 107 | } |
| 108 | |
| 109 | fn validate_unique_hash(self_id: &ArtifactId, hash: &[u8]) -> ModelValidatorResult<ArtifactError> { |
| 110 | ARTIFACT_REPOSITORY |
| 111 | .find_by_hash(hash) |
| 112 | .map_or(Ok(()), |existing_id| { |
| 113 | if existing_id != *self_id { |
| 114 | return Err(ArtifactError::ValidationError { |
| 115 | info: "Artifact with the same hash already exists".to_string(), |
| 116 | }); |
| 117 | } |
| 118 | |
| 119 | Ok(()) |
| 120 | }) |
| 121 | } |
| 122 | |
| 123 | impl ModelValidator<ArtifactError> for Artifact { |
| 124 | fn validate(&self) -> ModelValidatorResult<ArtifactError> { |