use derive_deftly::define_derive_deftly;
pub(crate) mod str;
pub mod batching_split_before;
use std::iter::Peekable;
define_derive_deftly! {
export AsMutSelf expect items:
impl<$tgens> ::std::convert::AsMut<Self> for $ttype where $twheres {
fn as_mut(&mut self) -> &mut Self {
self
}
}
}
#[doc(hidden)]
pub trait PeekableIterator: Iterator {
fn peek(&mut self) -> Option<&Self::Item>;
}
impl<I: Iterator> PeekableIterator for Peekable<I> {
fn peek(&mut self) -> Option<&Self::Item> {
self.peek()
}
}
impl<I: PeekableIterator> PeekableIterator for &mut I {
fn peek(&mut self) -> Option<&Self::Item> {
<I as PeekableIterator>::peek(*self)
}
}
pub(crate) mod private {
#[expect(dead_code, unreachable_pub)] pub trait Sealed {}
}
#[cfg(test)]
#[allow(unused)]
fn test_as_mut_compiles() {
use derive_deftly::Deftly;
#[derive(Deftly)]
#[derive_deftly(AsMutSelf)]
struct S<T: Clone>
where
Option<T>: Clone,
{
t: T,
}
let _: &mut S<()> = S { t: () }.as_mut();
}