prov_cosmwasm_std/results/
empty.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4/// An empty struct that serves as a placeholder in different places,
5/// such as contracts that don't set a custom message.
6///
7/// It is designed to be expressable in correct JSON and JSON Schema but
8/// contains no meaningful data. Previously we used enums without cases,
9/// but those cannot represented as valid JSON Schema (https://github.com/CosmWasm/cosmwasm/issues/451)
10#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
11pub struct Empty {}
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16
17    use crate::serde::{from_slice, to_vec};
18
19    #[test]
20    fn empty_can_be_instantiated_serialized_and_deserialized() {
21        let instance = Empty {};
22        let serialized = to_vec(&instance).unwrap();
23        assert_eq!(serialized, b"{}");
24
25        let deserialized: Empty = from_slice(b"{}").unwrap();
26        assert_eq!(deserialized, instance);
27
28        let deserialized: Empty = from_slice(b"{\"stray\":\"data\"}").unwrap();
29        assert_eq!(deserialized, instance);
30    }
31}