racoon 0.1.9

Racoon is a fast, fully customizable web framework for Rust focusing on simplicity.
Documentation
pub mod file_field;
pub mod input_field;
pub mod uuid_field;

use std::future::Future;

use crate::core::forms::{Files, FormData};

type FieldResult<T> = Box<dyn Future<Output = T> + Send + Sync + Unpin>;

pub trait AbstractFields: Sync + Send {
    fn field_name(&self) -> FieldResult<String>;
    fn validate(
        &mut self,
        form_data: &mut FormData,
        files: &mut Files,
    ) -> FieldResult<Result<(), Vec<String>>>;
    fn wrap(&self) -> Box<dyn AbstractFields>;
}

pub type FormFields = Vec<Box<dyn AbstractFields + Sync + Send>>;

pub enum FieldError {
    Message(Vec<String>),
}