ymir 0.3.0

Core library for building scalable application using rust.
Documentation
use std::borrow::Cow;

use serde::Serialize;
use utoipa::{PartialSchema, ToSchema};

#[derive(Serialize)]
pub struct Ulid(ulid::Ulid);

impl Ulid {
    pub fn new() -> Self {
        Self(ulid::Ulid::new())
    }
}

impl PartialSchema for Ulid {
    fn schema() -> utoipa::openapi::RefOr<utoipa::openapi::schema::Schema> {
        utoipa::openapi::schema::Object::builder()
            .schema_type(utoipa::openapi::schema::SchemaType::AnyValue)
            .into()
    }
}

impl ToSchema for Ulid {
    fn name() -> std::borrow::Cow<'static, str> {
        Cow::Borrowed("UlidSchema")
    }
}