MCPcopy Index your code
hub / github.com/davidhewitt/pythonize / deserialize_any_int

Method deserialize_any_int

src/de.rs:76–118  ·  view source on GitHub ↗
(&self, int: &Bound<'_, PyInt>, visitor: V)

Source from the content-addressed store, hash-verified

74 }
75
76 fn deserialize_any_int<'de, V>(&self, int: &Bound<'_, PyInt>, visitor: V) -> Result<V::Value>
77 where
78 V: de::Visitor<'de>,
79 {
80 if let Ok(x) = int.extract::<u128>() {
81 if let Ok(x) = u8::try_from(x) {
82 visitor.visit_u8(x)
83 } else if let Ok(x) = u16::try_from(x) {
84 visitor.visit_u16(x)
85 } else if let Ok(x) = u32::try_from(x) {
86 visitor.visit_u32(x)
87 } else if let Ok(x) = u64::try_from(x) {
88 visitor.visit_u64(x)
89 } else {
90 visitor.visit_u128(x)
91 }
92 } else if let Ok(x) = int.extract::<i128>() {
93 if let Ok(x) = i8::try_from(x) {
94 visitor.visit_i8(x)
95 } else if let Ok(x) = i16::try_from(x) {
96 visitor.visit_i16(x)
97 } else if let Ok(x) = i32::try_from(x) {
98 visitor.visit_i32(x)
99 } else if let Ok(x) = i64::try_from(x) {
100 visitor.visit_i64(x)
101 } else {
102 visitor.visit_i128(x)
103 }
104 } else {
105 #[cfg(feature = "arbitrary_precision")]
106 {
107 visitor.visit_map(NumberDeserializer {
108 number: Some(int.to_string()),
109 })
110 }
111 #[cfg(not(feature = "arbitrary_precision"))]
112 {
113 // Re-attempt to return the original error.
114 let _: i128 = int.extract()?;
115 unreachable!()
116 }
117 }
118 }
119}
120
121macro_rules! deserialize_type {

Callers 1

deserialize_anyMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected