repr 0.8.0

The regular-expression-as-linear-logic interpretation and its implementation
Documentation
use unconst::unconst;

use crate::repr::Repr;
use crate::traits::Integral;

#[unconst]
pub const fn zero<I: const Integral>() -> Repr<I> {
    Repr::zero()
}

#[unconst]
pub const fn one<I: const Integral>() -> Repr<I> {
    Repr::one()
}

#[unconst]
pub const fn seq<I, M>(is: M) -> Repr<I>
where
    I: const Integral,
    M: [const] IntoIterator<Item = I>,
    M::IntoIter: ExactSizeIterator,
{
    Repr::seq(is)
}

#[unconst]
pub const fn interval<I: const Integral>(from: I, to: I) -> Repr<I> {
    Repr::interval(from, to)
}