MCPcopy Create free account
hub / github.com/apache/paimon-rust / deserialize

Method deserialize

crates/paimon/src/spec/types.rs:1638–1658  ·  view source on GitHub ↗
(deserializer: D)

Source from the content-addressed store, hash-verified

1636 /// TODO: we should support more edge cases.
1637 impl<'de, T: DataTypeName> Deserialize<'de> for NullableType<T> {
1638 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1639 where
1640 D: Deserializer<'de>,
1641 {
1642 let s = String::deserialize(deserializer)?;
1643
1644 let (name, nullable) = s.split_once(' ').unwrap_or((s.as_str(), ""));
1645
1646 if name == T::NAME && nullable.is_empty() {
1647 Ok(NullableType::from(true))
1648 } else if name == T::NAME && nullable.contains("NOT NULL") {
1649 Ok(NullableType::from(false))
1650 } else {
1651 let expect = format!("{} or {} NOT NULL", T::NAME, T::NAME);
1652
1653 Err(serde::de::Error::invalid_value(
1654 serde::de::Unexpected::Str(s.as_str()),
1655 &expect.as_str(),
1656 ))
1657 }
1658 }
1659 }
1660
1661 pub(crate) fn extract_brackets_pos(

Callers

nothing calls this directly

Calls 3

deserializeFunction · 0.85
containsMethod · 0.80
is_emptyMethod · 0.45

Tested by

no test coverage detected