use core::marker::PhantomData;
use derive_more::From;
pub use missing_token::*;
pub use unexpected_token::*;
mod missing_token;
mod unexpected_token;
#[derive(Debug, Default, From, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct Trailing<T: ?Sized, Lang: ?Sized = ()> {
_marker: PhantomData<T>,
_lang: PhantomData<Lang>,
}
impl<T: ?Sized> Trailing<T> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn new() -> Self
where
T: Sized,
{
Self::of()
}
}
impl<T: ?Sized, Lang: ?Sized> Trailing<T, Lang> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn of() -> Self
where
T: Sized,
{
Self {
_marker: PhantomData,
_lang: PhantomData,
}
}
}
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct Leading<T: ?Sized, Lang: ?Sized = ()> {
_marker: PhantomData<T>,
_lang: PhantomData<Lang>,
}
impl<T: ?Sized> Leading<T> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn new() -> Self
where
T: Sized,
{
Self::of()
}
}
impl<T: ?Sized, Lang: ?Sized> Leading<T, Lang> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn of() -> Self
where
T: Sized,
{
Self {
_marker: PhantomData,
_lang: PhantomData,
}
}
}
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct Repeated<T: ?Sized, Lang: ?Sized = ()> {
_marker: PhantomData<T>,
_lang: PhantomData<Lang>,
}
impl<T: ?Sized> Repeated<T> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn new() -> Self
where
T: Sized,
{
Self::of()
}
}
impl<T: ?Sized, Lang: ?Sized> Repeated<T, Lang> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn of() -> Self
where
T: Sized,
{
Self {
_marker: PhantomData,
_lang: PhantomData,
}
}
}
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct Separator<T: ?Sized, Lang: ?Sized = ()> {
_marker: PhantomData<T>,
_lang: PhantomData<Lang>,
}
impl<T: ?Sized> Separator<T> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn new() -> Self
where
T: Sized,
{
Self::of()
}
}
impl<T: ?Sized, Lang: ?Sized> Separator<T, Lang> {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn of() -> Self
where
T: Sized,
{
Self {
_marker: PhantomData,
_lang: PhantomData,
}
}
}