pub fn add_violation(
        &mut self,
        r#type: impl Into<String>,
        subject: impl Into<String>,
        description: impl Into<String>,
    ) -> &mut Self {
        self.violations.append(&mut vec![PreconditionViolation {
            r#type: r#type.into(),
            subject: subject.into(),
            description: description.into(),
        }]);
        self
    }
Adds a [`PreconditionViolation`] to [`PreconditionFailure`]'s
`violations` vector.
tonic-types/src/richer_error/std_messages/prec_failure.rs