backend-kit 0.0.3

Provides a set of tools and helpers for building backend services in Rust.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use validator::Validate;

use crate::error;

pub fn validate<T: Validate>(value: &T) -> Result<(), error::Error> {
    if let Err(err) = value.validate() {
        if let Some((field, errors)) = err.field_errors().iter().next() {
            let message = errors.first().map(|e| e.to_string()).unwrap_or_default();

            return Err(error::invalid_argument_with_message(
                format!("{}: {}", field, message).as_str(),
            ));
        }
    }
    Ok(())
}