//! Permutations of `PartialEq` between `Ck`, `Check`, `str`, and `String`.
use crate ::{Check, Ck, Invariant};
// `Check`s don't need to have the same backing storage to be equal.
impl <'a, I, B1, B2> PartialEq<Check<I, B2>> for &' a Check<I, B1>
where
I: Invariant,
B1: AsRef<str>,
B2: AsRef<str>,
{
fn eq(&self , other: &Check<I, B2>) -> bool {
self .as_str() == other.as_str()
}
}
impl <'a, I, B1, B2> PartialEq<&' a Check<I, B2>> for Check<I, B1>
where
I: Invariant,
B1: AsRef<str>,
B2: AsRef<str>,
{
fn eq(&self , other: &&'a Check<I, B2>) -> bool {
self .as_str() == other.as_str()
}
}
macro_rules! impl_partial_eq {
(<I> $a:ty = $b:ty) => {
impl <I: Invariant> PartialEq<$a> for $b {
fn eq(&self , other: &$a) -> bool {
AsRef::<str>::as_ref(self ) == AsRef::<str>::as_ref(other)
}
}
};
(<I, B> $a:ty = $b:ty) => {
impl <I: Invariant, B: AsRef<str>> PartialEq<$a> for $b {
fn eq(&self , other: &$a) -> bool {
AsRef::<str>::as_ref(self ) == AsRef::<str>::as_ref(other)
}
}
};
(<$lt:lifetime, I> $a:ty = $b:ty) => {
impl <$lt, I: Invariant> PartialEq<$a> for $b {
fn eq(&self , other: &$a) -> bool {
AsRef::<str>::as_ref(self ) == AsRef::<str>::as_ref(other)
}
}
};
(<$lt:lifetime, I, B> $a:ty = $b:ty) => {
impl <$lt, I: Invariant, B: AsRef<str>> PartialEq<$a> for $b {
fn eq(&self , other: &$a) -> bool {
AsRef::<str>::as_ref(self ) == AsRef::<str>::as_ref(other)
}
}
};
}
impl_partial_eq!(<'a, I> Ck<I> = &' a Ck<I>);
impl_partial_eq!(<'a, I> &' a Ck<I> = Ck<I>);
impl_partial_eq!(<I, B> Ck<I> = Check<I, B>);
impl_partial_eq!(<I, B> Check<I, B> = Ck<I>);
impl_partial_eq!(<'a, I, B> &' a Ck<I> = Check<I, B>);
impl_partial_eq!(<'a, I, B> Check<I, B> = &' a Ck<I>);
impl_partial_eq!(<'a, I, B> Ck<I> = &' a Check<I, B>);
impl_partial_eq!(<'a, I, B> &' a Check<I, B> = Ck<I>);
impl_partial_eq!(<I, B> str = Check<I, B>);
impl_partial_eq!(<I, B> Check<I, B> = str);
impl_partial_eq!(<'a, I, B> &' a str = Check<I, B>);
impl_partial_eq!(<'a, I, B> Check<I, B> = &' a str);
impl_partial_eq!(<'a, I, B> str = &' a Check<I, B>);
impl_partial_eq!(<'a, I, B> &' a Check<I, B> = str);
impl_partial_eq!(<I, B> String = Check<I, B>);
impl_partial_eq!(<I, B> Check<I, B> = String);
impl_partial_eq!(<'a, I, B> &' a String = Check<I, B>);
impl_partial_eq!(<'a, I, B> Check<I, B> = &' a String);
impl_partial_eq!(<'a, I, B> String = &' a Check<I, B>);
impl_partial_eq!(<'a, I, B> &' a Check<I, B> = String);
impl_partial_eq!(<I> str = Ck<I>);
impl_partial_eq!(<I> Ck<I> = str);
impl_partial_eq!(<'a, I> &' a str = Ck<I>);
impl_partial_eq!(<'a, I> Ck<I> = &' a str);
impl_partial_eq!(<'a, I> str = &' a Ck<I>);
impl_partial_eq!(<'a, I> &' a Ck<I> = str);
impl_partial_eq!(<I> String = Ck<I>);
impl_partial_eq!(<I> Ck<I> = String);
impl_partial_eq!(<'a, I> &' a String = Ck<I>);
impl_partial_eq!(<'a, I> Ck<I> = &' a String);
impl_partial_eq!(<'a, I> String = &' a Ck<I>);
impl_partial_eq!(<'a, I> &' a Ck<I> = String);
Messung V0.5 in Prozent C=77 H=99 G=88
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-18)
¤
*© Formatika GbR, Deutschland