cardano_serialization_lib/serialization/plutus/
language.rs1use crate::*;
2
3impl cbor_event::se::Serialize for Language {
4 fn serialize<'se, W: Write>(
5 &self,
6 serializer: &'se mut Serializer<W>,
7 ) -> cbor_event::Result<&'se mut Serializer<W>> {
8 serializer.write_unsigned_integer(self.kind() as u64)
10 }
11}
12
13impl Deserialize for Language {
14 fn deserialize<R: BufRead + Seek>(raw: &mut Deserializer<R>) -> Result<Self, DeserializeError> {
15 (|| -> Result<_, DeserializeError> {
16 match LanguageKind::from_u64(raw.unsigned_integer()?) {
17 Some(kind) => Ok(Language(kind)),
18 _ => Err(DeserializeError::new(
19 "Language",
20 DeserializeFailure::NoVariantMatched.into(),
21 )),
22 }
23 })()
24 .map_err(|e| e.annotate("Language"))
25 }
26}