use serde::de::{Error, Unexpected}; use serde::{Deserialize, Deserializer, Serialize, Serializer};
impl Serialize for Sign { fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where
S: Serializer,
{ // Note: do not change the serialization format, or it may break // forward and backward compatibility of serialized data! match *self {
Sign::Minus => (-1i8).serialize(serializer),
Sign::NoSign => 0i8.serialize(serializer),
Sign::Plus => 1i8.serialize(serializer),
}
}
}
impl<'de> Deserialize<'de> for Sign { fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
{ let sign = i8::deserialize(deserializer)?; match sign {
-1 => Ok(Sign::Minus), 0 => Ok(Sign::NoSign), 1 => Ok(Sign::Plus),
_ => Err(D::Error::invalid_value(
Unexpected::Signed(sign.into()),
&"a sign of -1, 0, or 1",
)),
}
}
}
impl Serialize for BigInt { fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where
S: Serializer,
{ // Note: do not change the serialization format, or it may break // forward and backward compatibility of serialized data!
(self.sign, &self.data).serialize(serializer)
}
}
impl<'de> Deserialize<'de> for BigInt { fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
{ let (sign, data) = Deserialize::deserialize(deserializer)?;
Ok(BigInt::from_biguint(sign, data))
}
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.9Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.