/
germanubis
/
json
Обзор
Документация
Войти
/
germanubis
/
json
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/value/partial_eq.rs
103 строки
2 KB
David Tolnay
Resolve unnecessary_map_or clippy lints
16 ноя 2024, 05:47
Не верифицирован
16 ноя 2024, 05:47
a11f5f2
Код
Авторство
О чём код?
use super::Value; use alloc::string::String; fn eq_i64(value: &Value, other: i64) -> bool { value.as_i64() == Some(other) } fn eq_u64(value: &Value, other: u64) -> bool { value.as_u64() == Some(other) } fn eq_f32(value: &Value, other: f32) -> bool { match value { Value::Number(n) => n.as_f32() == Some(other), _ => false, } } fn eq_f64(value: &Value, other: f64) -> bool { value.as_f64() == Some(other) } fn eq_bool(value: &Value, other: bool) -> bool { value.as_bool() == Some(other) } fn eq_str(value: &Value, other: &str) -> bool { value.as_str() == Some(other) } impl PartialEq<str> for Value { fn eq(&self, other: &str) -> bool { eq_str(self, other) } } impl PartialEq<&str> for Value { fn eq(&self, other: &&str) -> bool { eq_str(self, *other) } } impl PartialEq<Value> for str { fn eq(&self, other: &Value) -> bool { eq_str(other, self) } } impl PartialEq<Value> for &str { fn eq(&self, other: &Value) -> bool { eq_str(other, *self) } } impl PartialEq<String> for Value { fn eq(&self, other: &String) -> bool { eq_str(self, other.as_str()) } } impl PartialEq<Value> for String { fn eq(&self, other: &Value) -> bool { eq_str(other, self.as_str()) } } macro_rules! partialeq_numeric { ($($eq:ident [$($ty:ty)*])*) => { $($( impl PartialEq<$ty> for Value { fn eq(&self, other: &$ty) -> bool { $eq(self, *other as _) } } impl PartialEq<Value> for $ty { fn eq(&self, other: &Value) -> bool { $eq(other, *self as _) } } impl<'a> PartialEq<$ty> for &'a Value { fn eq(&self, other: &$ty) -> bool { $eq(*self, *other as _) } } impl<'a> PartialEq<$ty> for &'a mut Value { fn eq(&self, other: &$ty) -> bool { $eq(*self, *other as _) } } )*)* } } partialeq_numeric! { eq_i64[i8 i16 i32 i64 isize] eq_u64[u8 u16 u32 u64 usize] eq_f32[f32] eq_f64[f64] eq_bool[bool] }