techcloud
Содержание

Рецепты

Небольшие законченные программы. Каждую можно скопировать и запустить как есть.

fields и field

Возвращает пути всех объявленных полей.

Добавляет правила для поля.

use techcloud::{Schema, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let schema = Schema::builder()
        .allow_unknown(false)
        .max_depth(32)
        .build()?;

    let items = schema.fields().await?;
    println!("{items:?}");

    schema.field("email", "required|email").await?;
    Ok(())
}

validate и is_valid

Проверяет JSON-документ и возвращает список ошибок.

Сообщает, проходит ли документ проверку, не собирая сообщений об ошибках.

use techcloud::{Schema, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let schema = Schema::builder()
        .max_errors(100)
        .locale("ru")
        .build()?;

    let items = schema.validate(b"{\"email\":\"ada@example.com\"}").await?;
    println!("{items:?}");

    let ok = schema.is_valid(b"{\"email\":\"ada@example.com\"}").await?;
    println!("{ok:?}");
    Ok(())
}