substrait/
proto.rs

1// SPDX-License-Identifier: Apache-2.0
2
3#![allow(
4    clippy::doc_overindented_list_items,
5    clippy::large_enum_variant,
6    clippy::needless_borrow,
7    clippy::needless_borrows_for_generic_args,
8    clippy::needless_lifetimes,
9    rustdoc::invalid_html_tags
10)]
11
12//! Generated types for the protobuf `substrait` package.
13
14/// Generated types for the protobuf `substrait.extensions` package
15pub mod extensions {
16    include!(concat!(env!("OUT_DIR"), "/substrait.extensions.rs"));
17
18    #[cfg(feature = "serde")]
19    include!(concat!(env!("OUT_DIR"), "/substrait.extensions.serde.rs"));
20}
21
22include!(concat!(env!("OUT_DIR"), "/substrait.rs"));
23
24#[cfg(feature = "serde")]
25include!(concat!(env!("OUT_DIR"), "/substrait.serde.rs"));
26
27#[cfg(test)]
28mod tests {
29    #[cfg(feature = "serde")]
30    #[test]
31    fn pbjson_serde() -> Result<(), Box<dyn std::error::Error>> {
32        let plan = serde_json::from_str::<super::Plan>(
33            r#"{
34  "version": { "minorNumber": 19, "producer": "substrait-rs" },
35  "extensionUris": [
36    {
37      "extensionUriAnchor": 1,
38      "uri": "https://github.com/substrait-io/substrait/blob/main/extensions/functions_string.yaml"
39    }
40  ]
41}"#,
42        )?;
43        assert_eq!(
44            plan.version,
45            Some(super::Version {
46                minor_number: 19,
47                producer: "substrait-rs".into(),
48                ..Default::default()
49            })
50        );
51        assert_eq!(plan.extension_uris.len(), 1);
52        Ok(())
53    }
54}