chrono-node-rs 0.1.0

Behaviour-matched Rust port of chrono-node: natural-language date parsing, checked against chrono-node's own output
Documentation
//! Russian (upstream `src/locales/ru/`), generated by `harness/onboard/onboard.js`. Do not edit.
//!
//! `parsers/` and `refiners/` are auto-registered, and every other `.rs` file in this directory
//! (`constants.rs`, a shared base) is declared by `build.rs`: a task adds one file and edits no shared line.

use std::sync::LazyLock;

use crate::core::chrono::Chrono;
use crate::locales::NamedConfiguration;

pub mod configuration;

include!(concat!(env!("OUT_DIR"), "/registry/ru_support.rs"));

pub mod parsers {
    //! Auto-registered Russian parsers.
    include!(concat!(env!("OUT_DIR"), "/registry/ru_parsers.rs"));
}

pub mod refiners {
    //! Auto-registered Russian refiners.
    include!(concat!(env!("OUT_DIR"), "/registry/ru_refiners.rs"));
}

static CASUAL: LazyLock<Chrono> = LazyLock::new(|| configuration::casual().build());
static STRICT: LazyLock<Chrono> = LazyLock::new(|| configuration::strict().build());

/// `chrono.ru.casual` (`ru.casual`).
pub fn casual() -> &'static Chrono {
    &CASUAL
}

/// `chrono.ru.strict` (`ru.strict`).
pub fn strict() -> &'static Chrono {
    &STRICT
}

/// This locale's named configurations (`crate::configuration`).
pub const NAMED: &[NamedConfiguration] = &[
    NamedConfiguration {
        name: "ru.casual",
        chrono: casual,
        configuration: configuration::casual,
    },
    NamedConfiguration {
        name: "ru.strict",
        chrono: strict,
        configuration: configuration::strict,
    },
];