// Autogenerated by Thrift Compiler (0.17.0) // DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING #![allow(unused_imports)] #![allow(unused_extern_crates)] #![allow(clippy::too_many_arguments, clippy::type_complexity, clippy::vec_box)] #![cfg_attr(rustfmt, rustfmt_skip)] use std::cell::RefCell; use std::collections::{BTreeMap, BTreeSet}; use std::convert::{From, TryFrom}; use std::default::Default; use std::error::Error; use std::fmt; use std::fmt::{Display, Formatter}; use std::rc::Rc; use thrift::OrderedFloat; use thrift::{ApplicationError, ApplicationErrorKind, ProtocolError, ProtocolErrorKind, TThriftClient}; use thrift::protocol::{TFieldIdentifier, TListIdentifier, TMapIdentifier, TMessageIdentifier, TMessageType, TInputProtocol, TOutputProtocol, TSerializable, TSetIdentifier, TStructIdentifier, TType}; use thrift::protocol::field_id; use thrift::protocol::verify_expected_message_type; use thrift::protocol::verify_expected_sequence_number; use thrift::protocol::verify_expected_service_call; use thrift::protocol::verify_required_field_exists; use thrift::server::TProcessor; use crate::tensor; #[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct FeatureType(pub i32); impl FeatureType { pub const BINARY: FeatureType = FeatureType(1); pub const CONTINUOUS: FeatureType = FeatureType(2); pub const DISCRETE: FeatureType = FeatureType(3); pub const STRING: FeatureType = FeatureType(4); pub const SPARSE_BINARY: FeatureType = FeatureType(5); pub const SPARSE_CONTINUOUS: FeatureType = FeatureType(6); pub const UNKNOWN: FeatureType = FeatureType(7); pub const BLOB: FeatureType = FeatureType(8); pub const TENSOR: FeatureType = FeatureType(9); pub const SPARSE_TENSOR: FeatureType = FeatureType(10); pub const FEATURE_TYPE11: FeatureType = FeatureType(11); pub const FEATURE_TYPE12: FeatureType = FeatureType(12); pub const ENUM_VALUES: &'static [Self] = &[ Self::BINARY, Self::CONTINUOUS, Self::DISCRETE, Self::STRING, Self::SPARSE_BINARY, Self::SPARSE_CONTINUOUS, Self::UNKNOWN, Self::BLOB, Self::TENSOR, Self::SPARSE_TENSOR, Self::FEATURE_TYPE11, Self::FEATURE_TYPE12, ]; } impl TSerializable for FeatureType { #[allow(clippy::trivially_copy_pass_by_ref)] fn write_to_out_protocol(&self, o_prot: &mut dyn TOutputProtocol) -> thrift::Result<()> { o_prot.write_i32(self.0) } fn read_from_in_protocol(i_prot: &mut dyn TInputProtocol) -> thrift::Result { let enum_value = i_prot.read_i32()?; Ok(FeatureType::from(enum_value)) } } impl From for FeatureType { fn from(i: i32) -> Self { match i { 1 => FeatureType::BINARY, 2 => FeatureType::CONTINUOUS, 3 => FeatureType::DISCRETE, 4 => FeatureType::STRING, 5 => FeatureType::SPARSE_BINARY, 6 => FeatureType::SPARSE_CONTINUOUS, 7 => FeatureType::UNKNOWN, 8 => FeatureType::BLOB, 9 => FeatureType::TENSOR, 10 => FeatureType::SPARSE_TENSOR, 11 => FeatureType::FEATURE_TYPE11, 12 => FeatureType::FEATURE_TYPE12, _ => FeatureType(i) } } } impl From<&i32> for FeatureType { fn from(i: &i32) -> Self { FeatureType::from(*i) } } impl From for i32 { fn from(e: FeatureType) -> i32 { e.0 } } impl From<&FeatureType> for i32 { fn from(e: &FeatureType) -> i32 { e.0 } } // // DataRecord // #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct DataRecord { pub binary_features: Option>, pub continuous_features: Option>>, pub discrete_features: Option>, pub string_features: Option>, pub sparse_binary_features: Option>>, pub sparse_continuous_features: Option>>>, pub blob_features: Option>>, pub tensors: Option>, pub sparse_tensors: Option>, } impl DataRecord { pub fn new(binary_features: F1, continuous_features: F2, discrete_features: F3, string_features: F4, sparse_binary_features: F5, sparse_continuous_features: F6, blob_features: F7, tensors: F8, sparse_tensors: F9) -> DataRecord where F1: Into>>, F2: Into>>>, F3: Into>>, F4: Into>>, F5: Into>>>, F6: Into>>>>, F7: Into>>>, F8: Into>>, F9: Into>> { DataRecord { binary_features: binary_features.into(), continuous_features: continuous_features.into(), discrete_features: discrete_features.into(), string_features: string_features.into(), sparse_binary_features: sparse_binary_features.into(), sparse_continuous_features: sparse_continuous_features.into(), blob_features: blob_features.into(), tensors: tensors.into(), sparse_tensors: sparse_tensors.into(), } } } impl TSerializable for DataRecord { fn read_from_in_protocol(i_prot: &mut dyn TInputProtocol) -> thrift::Result { i_prot.read_struct_begin()?; let mut f_1: Option> = None; let mut f_2: Option>> = None; let mut f_3: Option> = None; let mut f_4: Option> = None; let mut f_5: Option>> = None; let mut f_6: Option>>> = None; let mut f_7: Option>> = None; let mut f_8: Option> = None; let mut f_9: Option> = None; loop { let field_ident = i_prot.read_field_begin()?; if field_ident.field_type == TType::Stop { break; } let field_id = field_id(&field_ident)?; match field_id { 1 => { let set_ident = i_prot.read_set_begin()?; let mut val: BTreeSet = BTreeSet::new(); for _ in 0..set_ident.size { let set_elem_0 = i_prot.read_i64()?; val.insert(set_elem_0); } i_prot.read_set_end()?; f_1 = Some(val); }, 2 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_1 = i_prot.read_i64()?; let map_val_2 = OrderedFloat::from(i_prot.read_double()?); val.insert(map_key_1, map_val_2); } i_prot.read_map_end()?; f_2 = Some(val); }, 3 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_3 = i_prot.read_i64()?; let map_val_4 = i_prot.read_i64()?; val.insert(map_key_3, map_val_4); } i_prot.read_map_end()?; f_3 = Some(val); }, 4 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_5 = i_prot.read_i64()?; let map_val_6 = i_prot.read_string()?; val.insert(map_key_5, map_val_6); } i_prot.read_map_end()?; f_4 = Some(val); }, 5 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_7 = i_prot.read_i64()?; let set_ident = i_prot.read_set_begin()?; let mut map_val_8: BTreeSet = BTreeSet::new(); for _ in 0..set_ident.size { let set_elem_9 = i_prot.read_string()?; map_val_8.insert(set_elem_9); } i_prot.read_set_end()?; val.insert(map_key_7, map_val_8); } i_prot.read_map_end()?; f_5 = Some(val); }, 6 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap>> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_10 = i_prot.read_i64()?; let map_ident = i_prot.read_map_begin()?; let mut map_val_11: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_12 = i_prot.read_string()?; let map_val_13 = OrderedFloat::from(i_prot.read_double()?); map_val_11.insert(map_key_12, map_val_13); } i_prot.read_map_end()?; val.insert(map_key_10, map_val_11); } i_prot.read_map_end()?; f_6 = Some(val); }, 7 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_14 = i_prot.read_i64()?; let map_val_15 = i_prot.read_bytes()?; val.insert(map_key_14, map_val_15); } i_prot.read_map_end()?; f_7 = Some(val); }, 8 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_16 = i_prot.read_i64()?; let map_val_17 = tensor::GeneralTensor::read_from_in_protocol(i_prot)?; val.insert(map_key_16, map_val_17); } i_prot.read_map_end()?; f_8 = Some(val); }, 9 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_18 = i_prot.read_i64()?; let map_val_19 = tensor::SparseTensor::read_from_in_protocol(i_prot)?; val.insert(map_key_18, map_val_19); } i_prot.read_map_end()?; f_9 = Some(val); }, _ => { i_prot.skip(field_ident.field_type)?; }, }; i_prot.read_field_end()?; } i_prot.read_struct_end()?; let ret = DataRecord { binary_features: f_1, continuous_features: f_2, discrete_features: f_3, string_features: f_4, sparse_binary_features: f_5, sparse_continuous_features: f_6, blob_features: f_7, tensors: f_8, sparse_tensors: f_9, }; Ok(ret) } fn write_to_out_protocol(&self, o_prot: &mut dyn TOutputProtocol) -> thrift::Result<()> { let struct_ident = TStructIdentifier::new("DataRecord"); o_prot.write_struct_begin(&struct_ident)?; if let Some(ref fld_var) = self.binary_features { o_prot.write_field_begin(&TFieldIdentifier::new("binaryFeatures", TType::Set, 1))?; o_prot.write_set_begin(&TSetIdentifier::new(TType::I64, fld_var.len() as i32))?; for e in fld_var { o_prot.write_i64(*e)?; } o_prot.write_set_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.continuous_features { o_prot.write_field_begin(&TFieldIdentifier::new("continuousFeatures", TType::Map, 2))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Double, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_double((*v).into())?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.discrete_features { o_prot.write_field_begin(&TFieldIdentifier::new("discreteFeatures", TType::Map, 3))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::I64, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_i64(*v)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.string_features { o_prot.write_field_begin(&TFieldIdentifier::new("stringFeatures", TType::Map, 4))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::String, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_string(v)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_binary_features { o_prot.write_field_begin(&TFieldIdentifier::new("sparseBinaryFeatures", TType::Map, 5))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Set, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_set_begin(&TSetIdentifier::new(TType::String, v.len() as i32))?; for e in v { o_prot.write_string(e)?; } o_prot.write_set_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_continuous_features { o_prot.write_field_begin(&TFieldIdentifier::new("sparseContinuousFeatures", TType::Map, 6))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Map, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_map_begin(&TMapIdentifier::new(TType::String, TType::Double, v.len() as i32))?; for (k, v) in v { o_prot.write_string(k)?; o_prot.write_double((*v).into())?; } o_prot.write_map_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.blob_features { o_prot.write_field_begin(&TFieldIdentifier::new("blobFeatures", TType::Map, 7))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::String, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_bytes(v)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.tensors { o_prot.write_field_begin(&TFieldIdentifier::new("tensors", TType::Map, 8))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Struct, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; v.write_to_out_protocol(o_prot)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_tensors { o_prot.write_field_begin(&TFieldIdentifier::new("sparseTensors", TType::Map, 9))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Struct, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; v.write_to_out_protocol(o_prot)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } o_prot.write_field_stop()?; o_prot.write_struct_end() } } impl Default for DataRecord { fn default() -> Self { DataRecord{ binary_features: Some(BTreeSet::new()), continuous_features: Some(BTreeMap::new()), discrete_features: Some(BTreeMap::new()), string_features: Some(BTreeMap::new()), sparse_binary_features: Some(BTreeMap::new()), sparse_continuous_features: Some(BTreeMap::new()), blob_features: Some(BTreeMap::new()), tensors: Some(BTreeMap::new()), sparse_tensors: Some(BTreeMap::new()), } } } // // CompactDataRecord // #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct CompactDataRecord { pub binary_features: Option>, pub continuous_features: Option>, pub discrete_features: Option>, pub string_features: Option>, pub sparse_binary_features: Option>>, pub sparse_binary_features_with16b_sparse_key: Option>>, pub sparse_binary_features_with32b_sparse_key: Option>>, pub sparse_binary_features_with64b_sparse_key: Option>>, pub sparse_continuous_features: Option>>, pub sparse_continuous_features_with16b_sparse_key: Option>>, pub sparse_continuous_features_with32b_sparse_key: Option>>, pub sparse_continuous_features_with64b_sparse_key: Option>>, pub blob_features: Option>>, pub tensors: Option>, pub sparse_tensors: Option>, } impl CompactDataRecord { pub fn new(binary_features: F1, continuous_features: F2, discrete_features: F3, string_features: F4, sparse_binary_features: F5, sparse_binary_features_with16b_sparse_key: F6, sparse_binary_features_with32b_sparse_key: F7, sparse_binary_features_with64b_sparse_key: F8, sparse_continuous_features: F9, sparse_continuous_features_with16b_sparse_key: F10, sparse_continuous_features_with32b_sparse_key: F11, sparse_continuous_features_with64b_sparse_key: F12, blob_features: F13, tensors: F14, sparse_tensors: F15) -> CompactDataRecord where F1: Into>>, F2: Into>>, F3: Into>>, F4: Into>>, F5: Into>>>, F6: Into>>>, F7: Into>>>, F8: Into>>>, F9: Into>>>, F10: Into>>>, F11: Into>>>, F12: Into>>>, F13: Into>>>, F14: Into>>, F15: Into>> { CompactDataRecord { binary_features: binary_features.into(), continuous_features: continuous_features.into(), discrete_features: discrete_features.into(), string_features: string_features.into(), sparse_binary_features: sparse_binary_features.into(), sparse_binary_features_with16b_sparse_key: sparse_binary_features_with16b_sparse_key.into(), sparse_binary_features_with32b_sparse_key: sparse_binary_features_with32b_sparse_key.into(), sparse_binary_features_with64b_sparse_key: sparse_binary_features_with64b_sparse_key.into(), sparse_continuous_features: sparse_continuous_features.into(), sparse_continuous_features_with16b_sparse_key: sparse_continuous_features_with16b_sparse_key.into(), sparse_continuous_features_with32b_sparse_key: sparse_continuous_features_with32b_sparse_key.into(), sparse_continuous_features_with64b_sparse_key: sparse_continuous_features_with64b_sparse_key.into(), blob_features: blob_features.into(), tensors: tensors.into(), sparse_tensors: sparse_tensors.into(), } } } impl TSerializable for CompactDataRecord { fn read_from_in_protocol(i_prot: &mut dyn TInputProtocol) -> thrift::Result { i_prot.read_struct_begin()?; let mut f_1: Option> = None; let mut f_2: Option> = None; let mut f_3: Option> = None; let mut f_4: Option> = None; let mut f_5: Option>> = None; let mut f_6: Option>> = None; let mut f_7: Option>> = None; let mut f_8: Option>> = None; let mut f_9: Option>> = None; let mut f_10: Option>> = None; let mut f_11: Option>> = None; let mut f_12: Option>> = None; let mut f_13: Option>> = None; let mut f_14: Option> = None; let mut f_15: Option> = None; loop { let field_ident = i_prot.read_field_begin()?; if field_ident.field_type == TType::Stop { break; } let field_id = field_id(&field_ident)?; match field_id { 1 => { let set_ident = i_prot.read_set_begin()?; let mut val: BTreeSet = BTreeSet::new(); for _ in 0..set_ident.size { let set_elem_20 = i_prot.read_i64()?; val.insert(set_elem_20); } i_prot.read_set_end()?; f_1 = Some(val); }, 2 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_21 = i_prot.read_i64()?; let map_val_22 = i_prot.read_i32()?; val.insert(map_key_21, map_val_22); } i_prot.read_map_end()?; f_2 = Some(val); }, 3 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_23 = i_prot.read_i64()?; let map_val_24 = i_prot.read_i64()?; val.insert(map_key_23, map_val_24); } i_prot.read_map_end()?; f_3 = Some(val); }, 4 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_25 = i_prot.read_i64()?; let map_val_26 = i_prot.read_string()?; val.insert(map_key_25, map_val_26); } i_prot.read_map_end()?; f_4 = Some(val); }, 5 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_27 = i_prot.read_i64()?; let set_ident = i_prot.read_set_begin()?; let mut map_val_28: BTreeSet = BTreeSet::new(); for _ in 0..set_ident.size { let set_elem_29 = i_prot.read_string()?; map_val_28.insert(set_elem_29); } i_prot.read_set_end()?; val.insert(map_key_27, map_val_28); } i_prot.read_map_end()?; f_5 = Some(val); }, 6 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_30 = i_prot.read_i64()?; let set_ident = i_prot.read_set_begin()?; let mut map_val_31: BTreeSet = BTreeSet::new(); for _ in 0..set_ident.size { let set_elem_32 = i_prot.read_i16()?; map_val_31.insert(set_elem_32); } i_prot.read_set_end()?; val.insert(map_key_30, map_val_31); } i_prot.read_map_end()?; f_6 = Some(val); }, 7 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_33 = i_prot.read_i64()?; let set_ident = i_prot.read_set_begin()?; let mut map_val_34: BTreeSet = BTreeSet::new(); for _ in 0..set_ident.size { let set_elem_35 = i_prot.read_i32()?; map_val_34.insert(set_elem_35); } i_prot.read_set_end()?; val.insert(map_key_33, map_val_34); } i_prot.read_map_end()?; f_7 = Some(val); }, 8 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_36 = i_prot.read_i64()?; let set_ident = i_prot.read_set_begin()?; let mut map_val_37: BTreeSet = BTreeSet::new(); for _ in 0..set_ident.size { let set_elem_38 = i_prot.read_i64()?; map_val_37.insert(set_elem_38); } i_prot.read_set_end()?; val.insert(map_key_36, map_val_37); } i_prot.read_map_end()?; f_8 = Some(val); }, 9 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_39 = i_prot.read_i64()?; let map_ident = i_prot.read_map_begin()?; let mut map_val_40: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_41 = i_prot.read_string()?; let map_val_42 = i_prot.read_i32()?; map_val_40.insert(map_key_41, map_val_42); } i_prot.read_map_end()?; val.insert(map_key_39, map_val_40); } i_prot.read_map_end()?; f_9 = Some(val); }, 10 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_43 = i_prot.read_i64()?; let map_ident = i_prot.read_map_begin()?; let mut map_val_44: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_45 = i_prot.read_i16()?; let map_val_46 = i_prot.read_i32()?; map_val_44.insert(map_key_45, map_val_46); } i_prot.read_map_end()?; val.insert(map_key_43, map_val_44); } i_prot.read_map_end()?; f_10 = Some(val); }, 11 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_47 = i_prot.read_i64()?; let map_ident = i_prot.read_map_begin()?; let mut map_val_48: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_49 = i_prot.read_i32()?; let map_val_50 = i_prot.read_i32()?; map_val_48.insert(map_key_49, map_val_50); } i_prot.read_map_end()?; val.insert(map_key_47, map_val_48); } i_prot.read_map_end()?; f_11 = Some(val); }, 12 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_51 = i_prot.read_i64()?; let map_ident = i_prot.read_map_begin()?; let mut map_val_52: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_53 = i_prot.read_i64()?; let map_val_54 = i_prot.read_i32()?; map_val_52.insert(map_key_53, map_val_54); } i_prot.read_map_end()?; val.insert(map_key_51, map_val_52); } i_prot.read_map_end()?; f_12 = Some(val); }, 13 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap> = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_55 = i_prot.read_i64()?; let map_val_56 = i_prot.read_bytes()?; val.insert(map_key_55, map_val_56); } i_prot.read_map_end()?; f_13 = Some(val); }, 14 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_57 = i_prot.read_i64()?; let map_val_58 = tensor::GeneralTensor::read_from_in_protocol(i_prot)?; val.insert(map_key_57, map_val_58); } i_prot.read_map_end()?; f_14 = Some(val); }, 15 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_59 = i_prot.read_i64()?; let map_val_60 = tensor::SparseTensor::read_from_in_protocol(i_prot)?; val.insert(map_key_59, map_val_60); } i_prot.read_map_end()?; f_15 = Some(val); }, _ => { i_prot.skip(field_ident.field_type)?; }, }; i_prot.read_field_end()?; } i_prot.read_struct_end()?; let ret = CompactDataRecord { binary_features: f_1, continuous_features: f_2, discrete_features: f_3, string_features: f_4, sparse_binary_features: f_5, sparse_binary_features_with16b_sparse_key: f_6, sparse_binary_features_with32b_sparse_key: f_7, sparse_binary_features_with64b_sparse_key: f_8, sparse_continuous_features: f_9, sparse_continuous_features_with16b_sparse_key: f_10, sparse_continuous_features_with32b_sparse_key: f_11, sparse_continuous_features_with64b_sparse_key: f_12, blob_features: f_13, tensors: f_14, sparse_tensors: f_15, }; Ok(ret) } fn write_to_out_protocol(&self, o_prot: &mut dyn TOutputProtocol) -> thrift::Result<()> { let struct_ident = TStructIdentifier::new("CompactDataRecord"); o_prot.write_struct_begin(&struct_ident)?; if let Some(ref fld_var) = self.binary_features { o_prot.write_field_begin(&TFieldIdentifier::new("binaryFeatures", TType::Set, 1))?; o_prot.write_set_begin(&TSetIdentifier::new(TType::I64, fld_var.len() as i32))?; for e in fld_var { o_prot.write_i64(*e)?; } o_prot.write_set_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.continuous_features { o_prot.write_field_begin(&TFieldIdentifier::new("continuousFeatures", TType::Map, 2))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::I32, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_i32(*v)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.discrete_features { o_prot.write_field_begin(&TFieldIdentifier::new("discreteFeatures", TType::Map, 3))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::I64, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_i64(*v)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.string_features { o_prot.write_field_begin(&TFieldIdentifier::new("stringFeatures", TType::Map, 4))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::String, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_string(v)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_binary_features { o_prot.write_field_begin(&TFieldIdentifier::new("sparseBinaryFeatures", TType::Map, 5))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Set, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_set_begin(&TSetIdentifier::new(TType::String, v.len() as i32))?; for e in v { o_prot.write_string(e)?; } o_prot.write_set_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_binary_features_with16b_sparse_key { o_prot.write_field_begin(&TFieldIdentifier::new("sparseBinaryFeaturesWith16bSparseKey", TType::Map, 6))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Set, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_set_begin(&TSetIdentifier::new(TType::I16, v.len() as i32))?; for e in v { o_prot.write_i16(*e)?; } o_prot.write_set_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_binary_features_with32b_sparse_key { o_prot.write_field_begin(&TFieldIdentifier::new("sparseBinaryFeaturesWith32bSparseKey", TType::Map, 7))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Set, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_set_begin(&TSetIdentifier::new(TType::I32, v.len() as i32))?; for e in v { o_prot.write_i32(*e)?; } o_prot.write_set_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_binary_features_with64b_sparse_key { o_prot.write_field_begin(&TFieldIdentifier::new("sparseBinaryFeaturesWith64bSparseKey", TType::Map, 8))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Set, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_set_begin(&TSetIdentifier::new(TType::I64, v.len() as i32))?; for e in v { o_prot.write_i64(*e)?; } o_prot.write_set_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_continuous_features { o_prot.write_field_begin(&TFieldIdentifier::new("sparseContinuousFeatures", TType::Map, 9))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Map, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_map_begin(&TMapIdentifier::new(TType::String, TType::I32, v.len() as i32))?; for (k, v) in v { o_prot.write_string(k)?; o_prot.write_i32(*v)?; } o_prot.write_map_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_continuous_features_with16b_sparse_key { o_prot.write_field_begin(&TFieldIdentifier::new("sparseContinuousFeaturesWith16bSparseKey", TType::Map, 10))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Map, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I16, TType::I32, v.len() as i32))?; for (k, v) in v { o_prot.write_i16(*k)?; o_prot.write_i32(*v)?; } o_prot.write_map_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_continuous_features_with32b_sparse_key { o_prot.write_field_begin(&TFieldIdentifier::new("sparseContinuousFeaturesWith32bSparseKey", TType::Map, 11))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Map, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I32, TType::I32, v.len() as i32))?; for (k, v) in v { o_prot.write_i32(*k)?; o_prot.write_i32(*v)?; } o_prot.write_map_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_continuous_features_with64b_sparse_key { o_prot.write_field_begin(&TFieldIdentifier::new("sparseContinuousFeaturesWith64bSparseKey", TType::Map, 12))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Map, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::I32, v.len() as i32))?; for (k, v) in v { o_prot.write_i64(*k)?; o_prot.write_i32(*v)?; } o_prot.write_map_end()?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.blob_features { o_prot.write_field_begin(&TFieldIdentifier::new("blobFeatures", TType::Map, 13))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::String, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; o_prot.write_bytes(v)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.tensors { o_prot.write_field_begin(&TFieldIdentifier::new("tensors", TType::Map, 14))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Struct, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; v.write_to_out_protocol(o_prot)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_tensors { o_prot.write_field_begin(&TFieldIdentifier::new("sparseTensors", TType::Map, 15))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Struct, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; v.write_to_out_protocol(o_prot)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } o_prot.write_field_stop()?; o_prot.write_struct_end() } } impl Default for CompactDataRecord { fn default() -> Self { CompactDataRecord{ binary_features: Some(BTreeSet::new()), continuous_features: Some(BTreeMap::new()), discrete_features: Some(BTreeMap::new()), string_features: Some(BTreeMap::new()), sparse_binary_features: Some(BTreeMap::new()), sparse_binary_features_with16b_sparse_key: Some(BTreeMap::new()), sparse_binary_features_with32b_sparse_key: Some(BTreeMap::new()), sparse_binary_features_with64b_sparse_key: Some(BTreeMap::new()), sparse_continuous_features: Some(BTreeMap::new()), sparse_continuous_features_with16b_sparse_key: Some(BTreeMap::new()), sparse_continuous_features_with32b_sparse_key: Some(BTreeMap::new()), sparse_continuous_features_with64b_sparse_key: Some(BTreeMap::new()), blob_features: Some(BTreeMap::new()), tensors: Some(BTreeMap::new()), sparse_tensors: Some(BTreeMap::new()), } } } // // TensorRecord // #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct TensorRecord { pub tensors: Option>, pub sparse_tensors: Option>, } impl TensorRecord { pub fn new(tensors: F1, sparse_tensors: F2) -> TensorRecord where F1: Into>>, F2: Into>> { TensorRecord { tensors: tensors.into(), sparse_tensors: sparse_tensors.into(), } } } impl TSerializable for TensorRecord { fn read_from_in_protocol(i_prot: &mut dyn TInputProtocol) -> thrift::Result { i_prot.read_struct_begin()?; let mut f_1: Option> = None; let mut f_2: Option> = None; loop { let field_ident = i_prot.read_field_begin()?; if field_ident.field_type == TType::Stop { break; } let field_id = field_id(&field_ident)?; match field_id { 1 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_61 = i_prot.read_i64()?; let map_val_62 = tensor::GeneralTensor::read_from_in_protocol(i_prot)?; val.insert(map_key_61, map_val_62); } i_prot.read_map_end()?; f_1 = Some(val); }, 2 => { let map_ident = i_prot.read_map_begin()?; let mut val: BTreeMap = BTreeMap::new(); for _ in 0..map_ident.size { let map_key_63 = i_prot.read_i64()?; let map_val_64 = tensor::SparseTensor::read_from_in_protocol(i_prot)?; val.insert(map_key_63, map_val_64); } i_prot.read_map_end()?; f_2 = Some(val); }, _ => { i_prot.skip(field_ident.field_type)?; }, }; i_prot.read_field_end()?; } i_prot.read_struct_end()?; let ret = TensorRecord { tensors: f_1, sparse_tensors: f_2, }; Ok(ret) } fn write_to_out_protocol(&self, o_prot: &mut dyn TOutputProtocol) -> thrift::Result<()> { let struct_ident = TStructIdentifier::new("TensorRecord"); o_prot.write_struct_begin(&struct_ident)?; if let Some(ref fld_var) = self.tensors { o_prot.write_field_begin(&TFieldIdentifier::new("tensors", TType::Map, 1))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Struct, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; v.write_to_out_protocol(o_prot)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.sparse_tensors { o_prot.write_field_begin(&TFieldIdentifier::new("sparseTensors", TType::Map, 2))?; o_prot.write_map_begin(&TMapIdentifier::new(TType::I64, TType::Struct, fld_var.len() as i32))?; for (k, v) in fld_var { o_prot.write_i64(*k)?; v.write_to_out_protocol(o_prot)?; } o_prot.write_map_end()?; o_prot.write_field_end()? } o_prot.write_field_stop()?; o_prot.write_struct_end() } } impl Default for TensorRecord { fn default() -> Self { TensorRecord{ tensors: Some(BTreeMap::new()), sparse_tensors: Some(BTreeMap::new()), } } } // // FeatureMetaInfo // #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct FeatureMetaInfo { pub feature_id: Option, pub full_feature_name: Option, pub feature_type: Option, } impl FeatureMetaInfo { pub fn new(feature_id: F1, full_feature_name: F2, feature_type: F3) -> FeatureMetaInfo where F1: Into>, F2: Into>, F3: Into> { FeatureMetaInfo { feature_id: feature_id.into(), full_feature_name: full_feature_name.into(), feature_type: feature_type.into(), } } } impl TSerializable for FeatureMetaInfo { fn read_from_in_protocol(i_prot: &mut dyn TInputProtocol) -> thrift::Result { i_prot.read_struct_begin()?; let mut f_1: Option = None; let mut f_2: Option = None; let mut f_3: Option = None; loop { let field_ident = i_prot.read_field_begin()?; if field_ident.field_type == TType::Stop { break; } let field_id = field_id(&field_ident)?; match field_id { 1 => { let val = i_prot.read_i64()?; f_1 = Some(val); }, 2 => { let val = i_prot.read_string()?; f_2 = Some(val); }, 3 => { let val = FeatureType::read_from_in_protocol(i_prot)?; f_3 = Some(val); }, _ => { i_prot.skip(field_ident.field_type)?; }, }; i_prot.read_field_end()?; } i_prot.read_struct_end()?; let ret = FeatureMetaInfo { feature_id: f_1, full_feature_name: f_2, feature_type: f_3, }; Ok(ret) } fn write_to_out_protocol(&self, o_prot: &mut dyn TOutputProtocol) -> thrift::Result<()> { let struct_ident = TStructIdentifier::new("FeatureMetaInfo"); o_prot.write_struct_begin(&struct_ident)?; if let Some(fld_var) = self.feature_id { o_prot.write_field_begin(&TFieldIdentifier::new("featureId", TType::I64, 1))?; o_prot.write_i64(fld_var)?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.full_feature_name { o_prot.write_field_begin(&TFieldIdentifier::new("fullFeatureName", TType::String, 2))?; o_prot.write_string(fld_var)?; o_prot.write_field_end()? } if let Some(ref fld_var) = self.feature_type { o_prot.write_field_begin(&TFieldIdentifier::new("featureType", TType::I32, 3))?; fld_var.write_to_out_protocol(o_prot)?; o_prot.write_field_end()? } o_prot.write_field_stop()?; o_prot.write_struct_end() } } impl Default for FeatureMetaInfo { fn default() -> Self { FeatureMetaInfo{ feature_id: Some(0), full_feature_name: Some("".to_owned()), feature_type: None, } } } // // FeatureMetaInfoList // #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct FeatureMetaInfoList { pub contents: Option>, } impl FeatureMetaInfoList { pub fn new(contents: F1) -> FeatureMetaInfoList where F1: Into>> { FeatureMetaInfoList { contents: contents.into(), } } } impl TSerializable for FeatureMetaInfoList { fn read_from_in_protocol(i_prot: &mut dyn TInputProtocol) -> thrift::Result { i_prot.read_struct_begin()?; let mut f_1: Option> = None; loop { let field_ident = i_prot.read_field_begin()?; if field_ident.field_type == TType::Stop { break; } let field_id = field_id(&field_ident)?; match field_id { 1 => { let list_ident = i_prot.read_list_begin()?; let mut val: Vec = Vec::with_capacity(list_ident.size as usize); for _ in 0..list_ident.size { let list_elem_65 = FeatureMetaInfo::read_from_in_protocol(i_prot)?; val.push(list_elem_65); } i_prot.read_list_end()?; f_1 = Some(val); }, _ => { i_prot.skip(field_ident.field_type)?; }, }; i_prot.read_field_end()?; } i_prot.read_struct_end()?; let ret = FeatureMetaInfoList { contents: f_1, }; Ok(ret) } fn write_to_out_protocol(&self, o_prot: &mut dyn TOutputProtocol) -> thrift::Result<()> { let struct_ident = TStructIdentifier::new("FeatureMetaInfoList"); o_prot.write_struct_begin(&struct_ident)?; if let Some(ref fld_var) = self.contents { o_prot.write_field_begin(&TFieldIdentifier::new("contents", TType::List, 1))?; o_prot.write_list_begin(&TListIdentifier::new(TType::Struct, fld_var.len() as i32))?; for e in fld_var { e.write_to_out_protocol(o_prot)?; } o_prot.write_list_end()?; o_prot.write_field_end()? } o_prot.write_field_stop()?; o_prot.write_struct_end() } } impl Default for FeatureMetaInfoList { fn default() -> Self { FeatureMetaInfoList{ contents: Some(Vec::new()), } } }