g-stream opened a new issue, #12600:
URL: https://github.com/apache/datafusion/issues/12600

   ### Describe the bug
   
   
   i try to use logical_plan_to_json method, but cargo compile error  when open 
 'json' feature of datafusion-proto, 
   
   
   # code:
   ```
   
   #[tokio::main]
   async fn main() -> datafusion::error::Result<()> {
     // register the table
     let ctx = SessionContext::new();
   
   
   
     let item_id_selection =  vec![1,2,3];
     let expr = col("item_id")
     .in_list(item_id_selection.into_iter().map(|id| lit(id)).collect(), false);
   
   
           let df1: DataFrame = ctx.read_csv("tests/data/item.csv", 
CsvReadOptions::new()).await?;
           let df1: DataFrame = df1.select(vec![col("item_id"),col("clk")])?
           .filter(expr)?;
   
     let batch = RecordBatch::try_from_iter(vec![
         ("item_id", Arc::new(Int64Array::from(vec![1i64, 2i64, 3i64])) as 
ArrayRef),
     ])?;
   
     let plan1: &datafusion::logical_expr::LogicalPlan = df1.logical_plan();
   
     let str = datafusion_proto::bytes::logical_plan_to_json(plan1).unwrap();
     println!("json:{:?}", str);
   
     Ok(())
   }
   ```
   # cargo.toml
   
   ```
   [package]
   name = "ff_demo"
   version = "0.1.0"
   edition = "2021"
   
   [dependencies]
   datafusion = {version = "42.0.0", default-features = true }
   
   datafusion-common = {version = "42.0.0", default-features = true }
   datafusion-expr = {version = "42.0.0", default-features = true }
   datafusion-proto = {version = "42.0.0",  features = ["json"]}
   tokio = { version = "1.0", features = ["rt-multi-thread"] }
   futures = "0.3"
   log = "0.4.22"
   env_logger = "0.11.4"
   log4rs = "1.3.0"
   anyhow = "1.0.86"
   
   arrow = { version = "52.0.0", features = [
       "prettyprint",
   ] }
   
   pbjson = { version = "0.6.0"}
   prost = "0.12.0"
   serde = { version = "1.0" }
   serde_json = "1"
   pbjson-build = "0.6.2"
   prost-build = "0.12.6"
   pbjson-types = { version = "0.3"}
   
   [build-dependencies]
   pbjson-build = "0.6.2"
   prost-build = "0.12.6"
   pbjson-types = { version = "0.3"}
   
   ```
   
   
   # compile error
   ```
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16153:80
         |
   16153 |                     
struct_ser.serialize_field("InitialPhysicalPlanWithStats", v)?;
         |                                ---------------                       
          ^ the trait `Serialize` is not implemented for 
`datafusion_proto_common::EmptyMessage`
         |                                |
         |                                required by a bound introduced by 
this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::EmptyMessage` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16156:81
         |
   16156 |                     
struct_ser.serialize_field("InitialPhysicalPlanWithSchema", v)?;
         |                                ---------------                       
           ^ the trait `Serialize` is not implemented for 
`datafusion_proto_common::EmptyMessage`
         |                                |
         |                                required by a bound introduced by 
this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::EmptyMessage` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16162:69
         |
   16162 |                     struct_ser.serialize_field("FinalPhysicalPlan", 
v)?;
         |                                ---------------                      
^ the trait `Serialize` is not implemented for 
`datafusion_proto_common::EmptyMessage`
         |                                |
         |                                required by a bound introduced by 
this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::EmptyMessage` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16165:78
         |
   16165 |                     
struct_ser.serialize_field("FinalPhysicalPlanWithStats", v)?;
         |                                ---------------                       
        ^ the trait `Serialize` is not implemented for 
`datafusion_proto_common::EmptyMessage`
         |                                |
         |                                required by a bound introduced by 
this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::EmptyMessage` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16168:79
         |
   16168 |                     
struct_ser.serialize_field("FinalPhysicalPlanWithSchema", v)?;
         |                                ---------------                       
         ^ the trait `Serialize` is not implemented for 
`datafusion_proto_common::EmptyMessage`
         |                                |
         |                                required by a bound introduced by 
this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::EmptyMessage` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16269:66
         |
   16269 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::InitialLogicalPlan)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16283:66
         |
   16283 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::FinalAnalyzedLogicalPlan)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16297:66
         |
   16297 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::FinalLogicalPlan)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16304:66
         |
   16304 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::InitialPhysicalPlan)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16311:66
         |
   16311 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::InitialPhysicalPlanWithStats)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16318:66
         |
   16318 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::InitialPhysicalPlanWithSchema)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16332:66
         |
   16332 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::FinalPhysicalPlan)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16339:66
         |
   16339 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::FinalPhysicalPlanWithStats)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16346:66
         |
   16346 | ...                   plan_type_enum__ = 
map_.next_value::<::std::option::Option<_>>()?.map(plan_type::PlanTypeEnum::FinalPhysicalPlanWithSchema)
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::ArrowType: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16381:53
         |
   16381 |             struct_ser.serialize_field("dataTypes", 
&self.data_types)?;
         |                        ---------------              ^^^^^^^^^^^^^^^^ 
the trait `Serialize` is not implemented for 
`datafusion_proto_common::ArrowType`, which is required by 
`Vec<datafusion_proto_common::ArrowType>: Serialize`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::ArrowType` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
         = note: required for `Vec<datafusion_proto_common::ArrowType>` to 
implement `Serialize`
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::ArrowType: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:16465:54
         |
   16465 | ...                   data_types__ = Some(map_.next_value()?);
         |                                                ^^^^^^^^^^ the trait 
`Deserialize<'_>` is not implemented for `datafusion_proto_common::ArrowType`, 
which is required by `Vec<datafusion_proto_common::ArrowType>: Deserialize<'de>`
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::ArrowType` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for `Vec<datafusion_proto_common::ArrowType>` to 
implement `Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::JoinType: Serialize` 
is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:18683:52
         |
   18683 |             struct_ser.serialize_field("joinType", &v)?;
         |                        ---------------             ^^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::JoinType`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::JoinType` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::JoinType: 
Deserialize<'de>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:18821:66
         |
   18821 | ...                   join_type__ = 
Some(map_.next_value::<super::datafusion_common::JoinType>()? as i32);
         |                                               ----------   
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'de>` is not 
implemented for `datafusion_proto_common::JoinType`
         |                                               |
         |                                               required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::JoinType` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::ArrowType: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19012:53
         |
   19012 |             struct_ser.serialize_field("arrowType", v)?;
         |                        ---------------              ^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::ArrowType`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::ArrowType` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::ArrowType: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19089:49
         |
   19089 | ...                   arrow_type__ = map_.next_value()?;
         |                                           ^^^^^^^^^^ the trait 
`Deserialize<'_>` is not implemented for `datafusion_proto_common::ArrowType`, 
which is required by `std::option::Option<_>: Deserialize<'de>`
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::ArrowType` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::ArrowType>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::Schema: Serialize` 
is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19403:50
         |
   19403 |             struct_ser.serialize_field("schema", v)?;
         |                        ---------------           ^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::Schema`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::Schema` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::Schema: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19502:45
         |
   19502 | ...                   schema__ = map_.next_value()?;
         |                                       ^^^^^^^^^^ the trait 
`Deserialize<'_>` is not implemented for `datafusion_proto_common::Schema`, 
which is required by `std::option::Option<_>: Deserialize<'de>`
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::Schema` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::Schema>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::Column: Serialize` 
is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19576:55
         |
   19576 |             struct_ser.serialize_field("execColumns", 
&self.exec_columns)?;
         |                        ---------------                
^^^^^^^^^^^^^^^^^^ the trait `Serialize` is not implemented for 
`datafusion_proto_common::Column`, which is required by 
`Vec<datafusion_proto_common::Column>: Serialize`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::Column` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
         = note: required for `Vec<datafusion_proto_common::Column>` to 
implement `Serialize`
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::DfSchema: Serialize` 
is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19588:50
         |
   19588 |             struct_ser.serialize_field("schema", v)?;
         |                        ---------------           ^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::DfSchema`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::DfSchema` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::Column: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19691:56
         |
   19691 | ...                   exec_columns__ = Some(map_.next_value()?);
         |                                                  ^^^^^^^^^^ the 
trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::Column`, which is required by 
`Vec<datafusion_proto_common::Column>: Deserialize<'de>`
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::Column` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for `Vec<datafusion_proto_common::Column>` to 
implement `Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::DfSchema: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19724:45
         |
   19724 | ...                   schema__ = map_.next_value()?;
         |                                       ^^^^^^^^^^ the trait 
`Deserialize<'_>` is not implemented for `datafusion_proto_common::DfSchema`, 
which is required by `std::option::Option<_>: Deserialize<'de>`
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::DfSchema` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::DfSchema>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::Schema: Serialize` 
is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:19985:50
         |
   19985 |             struct_ser.serialize_field("schema", v)?;
         |                        ---------------           ^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::Schema`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::Schema` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::Schema: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:20086:45
         |
   20086 | ...                   schema__ = map_.next_value()?;
         |                                       ^^^^^^^^^^ the trait 
`Deserialize<'_>` is not implemented for `datafusion_proto_common::Schema`, 
which is required by `std::option::Option<_>: Deserialize<'de>`
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::Schema` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::Schema>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:20348:58
         |
   20348 |                     struct_ser.serialize_field("linear", v)?;
         |                                ---------------           ^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::EmptyMessage`
         |                                |
         |                                required by a bound introduced by 
this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::EmptyMessage` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:20354:58
         |
   20354 |                     struct_ser.serialize_field("sorted", v)?;
         |                                ---------------           ^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::EmptyMessage`
         |                                |
         |                                required by a bound introduced by 
this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::EmptyMessage` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:20461:68
         |
   20461 | ...                   input_order_mode__ = 
map_.next_value::<::std::option::Option<_>>()?.map(window_agg_exec_node::InputOrderMode::Linear)
         |                                                 ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                                 |
         |                                                 required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::EmptyMessage: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:20475:68
         |
   20475 | ...                   input_order_mode__ = 
map_.next_value::<::std::option::Option<_>>()?.map(window_agg_exec_node::InputOrderMode::Sorted)
         |                                                 ----------   
^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for 
`datafusion_proto_common::EmptyMessage`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |                                                 |
         |                                                 required by a bound 
introduced by this call
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::EmptyMessage` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::EmptyMessage>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   error[E0277]: the trait bound `datafusion_proto_common::ScalarValue: 
Serialize` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:20861:54
         |
   20861 |             struct_ser.serialize_field("boundValue", v)?;
         |                        ---------------               ^ the trait 
`Serialize` is not implemented for `datafusion_proto_common::ScalarValue`
         |                        |
         |                        required by a bound introduced by this call
         |
         = note: for local types consider adding `#[derive(serde::Serialize)]` 
to your `datafusion_proto_common::ScalarValue` type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Serialize`:
                   &'a T
                   &'a mut T
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                   (T0, T1, T2, T3, T4)
                 and 295 others
   note: required by a bound in `serde::ser::SerializeStruct::serialize_field`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/ser/mod.rs:1867:21
         |
   1865  |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) 
-> Result<(), Self::Error>
         |        --------------- required by a bound in this associated 
function
   1866  |     where
   1867  |         T: ?Sized + Serialize;
         |                     ^^^^^^^^^ required by this bound in 
`SerializeStruct::serialize_field`
   
   error[E0277]: the trait bound `datafusion_proto_common::ScalarValue: 
Deserialize<'_>` is not satisfied
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-proto-42.0.0/src/generated/pbjson.rs:20939:50
         |
   20939 | ...                   bound_value__ = map_.next_value()?;
         |                                            ^^^^^^^^^^ the trait 
`Deserialize<'_>` is not implemented for 
`datafusion_proto_common::ScalarValue`, which is required by 
`std::option::Option<_>: Deserialize<'de>`
         |
         = note: for local types consider adding 
`#[derive(serde::Deserialize)]` to your `datafusion_proto_common::ScalarValue` 
type
         = note: for types from other crates check whether the crate offers a 
`serde` feature flag
         = help: the following other types implement trait `Deserialize<'de>`:
                   &'a [u8]
                   &'a std::path::Path
                   &'a str
                   ()
                   (T,)
                   (T0, T1)
                   (T0, T1, T2)
                   (T0, T1, T2, T3)
                 and 463 others
         = note: required for 
`std::option::Option<datafusion_proto_common::ScalarValue>` to implement 
`Deserialize<'de>`
   note: required by a bound in `next_value`
        --> 
/Users/leo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.204/src/de/mod.rs:1872:12
         |
   1870  |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
         |        ---------- required by a bound in this associated function
   1871  |     where
   1872  |         V: Deserialize<'de>,
         |            ^^^^^^^^^^^^^^^^ required by this bound in 
`MapAccess::next_value`
   
   For more information about this error, try `rustc --explain E0277`.
   libunwind: malformed __unwind_info at 0x19877CCA8 bad second level page      
                                                                                
                                                                 
   libunwind: malformed __unwind_info at 0x19877CCA8 bad second level page
   error: could not compile `datafusion-proto` (lib) due to 126 previous errors
   
    *  终端进程“cargo 'run', '--package', 'ff_demo', '--bin', 'ff_demo'”已终止,退出代码: 
101。 
   ```
   
   ### To Reproduce
   
   _No response_
   
   ### Expected behavior
   
   _No response_
   
   ### Additional context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to