From 8bc7f0b8491f2fccaa3111cbc8a2a471c43065d3 Mon Sep 17 00:00:00 2001 From: Pruthvikar Date: Tue, 2 Jul 2024 16:21:41 +0100 Subject: [PATCH 1/2] Clippy --- pbjson-build/src/lib.rs | 2 +- pbjson-build/src/message.rs | 13 ++++++------- pbjson-build/src/resolver.rs | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/pbjson-build/src/lib.rs b/pbjson-build/src/lib.rs index eaee816..bdca1a4 100644 --- a/pbjson-build/src/lib.rs +++ b/pbjson-build/src/lib.rs @@ -288,7 +288,7 @@ impl Builder { &self.btree_map_paths, self.emit_fields, self.preserve_proto_field_names, - )? + )?; } } } diff --git a/pbjson-build/src/message.rs b/pbjson-build/src/message.rs index 6f0e47a..008c7ed 100644 --- a/pbjson-build/src/message.rs +++ b/pbjson-build/src/message.rs @@ -26,7 +26,7 @@ pub enum ScalarType { } impl ScalarType { - pub fn rust_type(&self) -> &'static str { + pub fn rust_type(self) -> &'static str { match self { Self::F64 => "f64", Self::F32 => "f32", @@ -40,7 +40,7 @@ impl ScalarType { } } - pub fn is_numeric(&self) -> bool { + pub fn is_numeric(self) -> bool { matches!( self, Self::F64 | Self::F32 | Self::I32 | Self::I64 | Self::U32 | Self::U64 @@ -65,7 +65,7 @@ pub enum FieldModifier { } impl FieldModifier { - pub fn is_required(&self) -> bool { + pub fn is_required(self) -> bool { matches!(self, Self::Required) } } @@ -167,7 +167,7 @@ pub fn resolve_message( let name = descriptor.name.clone().expect("oneof with no name"); let path = message.path.child(TypeName::new(&name)); - one_ofs.push(OneOf { name, path, fields }) + one_ofs.push(OneOf { name, path, fields }); } } @@ -254,9 +254,8 @@ fn resolve_type(descriptors: &DescriptorSet, type_name: &str) -> FieldType { assert_eq!("key", key.name()); assert_eq!("value", value.name()); - let key_type = match field_type(descriptors, key) { - FieldType::Scalar(scalar) => scalar, - _ => panic!("non scalar map key"), + let FieldType::Scalar(key_type) = field_type(descriptors, key) else { + panic!("non scalar map key"); }; let value_type = field_type(descriptors, value); FieldType::Map(key_type, Box::new(value_type)) diff --git a/pbjson-build/src/resolver.rs b/pbjson-build/src/resolver.rs index 8d9d4bb..a2f7498 100644 --- a/pbjson-build/src/resolver.rs +++ b/pbjson-build/src/resolver.rs @@ -64,7 +64,7 @@ impl<'a> Resolver<'a> { let mut ret = String::new(); for _ in 0..super_count { - ret.push_str("super::") + ret.push_str("super::"); } (ret, shared_prefix) From 736a0dcbbde25b17f3f4ea84840a90e2e8d6f63e Mon Sep 17 00:00:00 2001 From: Pruthvikar Date: Tue, 2 Jul 2024 16:24:01 +0100 Subject: [PATCH 2/2] Clippy --- pbjson-build/src/descriptor.rs | 13 ++++---- pbjson-build/src/generator/message.rs | 43 ++++++++++++--------------- 2 files changed, 25 insertions(+), 31 deletions(-) diff --git a/pbjson-build/src/descriptor.rs b/pbjson-build/src/descriptor.rs index 37f9ddc..73711ab 100644 --- a/pbjson-build/src/descriptor.rs +++ b/pbjson-build/src/descriptor.rs @@ -133,9 +133,8 @@ impl TypePath { /// Performs a prefix match, returning the length of the match in path segments if any pub fn prefix_match(&self, prefix: &str) -> Option { - let prefix = match prefix.strip_prefix('.') { - Some(prefix) => prefix, - None => panic!("prefix must start with a '.'"), + let Some(prefix) = prefix.strip_prefix('.') else { + panic!("prefix must start with a '.'"); }; if prefix.is_empty() { @@ -183,11 +182,11 @@ impl DescriptorSet { let path = TypePath::new(package); for descriptor in file.message_type { - self.register_message(&path, descriptor, syntax) + self.register_message(&path, descriptor, syntax); } for descriptor in file.enum_type { - self.register_enum(&path, descriptor) + self.register_enum(&path, descriptor); } } @@ -200,11 +199,11 @@ impl DescriptorSet { let child_path = path.child(name); for child_descriptor in descriptor.enum_type { - self.register_enum(&child_path, child_descriptor) + self.register_enum(&child_path, child_descriptor); } for child_descriptor in descriptor.nested_type { - self.register_message(&child_path, child_descriptor, syntax) + self.register_message(&child_path, child_descriptor, syntax); } self.register_descriptor( diff --git a/pbjson-build/src/generator/message.rs b/pbjson-build/src/generator/message.rs index 4203554..0039504 100644 --- a/pbjson-build/src/generator/message.rs +++ b/pbjson-build/src/generator/message.rs @@ -85,25 +85,25 @@ fn write_field_empty_predicate( (_, FieldModifier::Required) => unreachable!(), (_, FieldModifier::Repeated) | (FieldType::Map(_, _), _) - | (FieldType::Scalar(ScalarType::String), FieldModifier::UseDefault) - | (FieldType::Scalar(ScalarType::Bytes), FieldModifier::UseDefault) => { + | (FieldType::Scalar(ScalarType::String | ScalarType::Bytes), FieldModifier::UseDefault) => { write!(writer, "!self.{}.is_empty()", member.rust_field_name()) } (_, FieldModifier::Optional) | (FieldType::Message(_), _) => { write!(writer, "self.{}.is_some()", member.rust_field_name()) } - (FieldType::Scalar(ScalarType::F64), FieldModifier::UseDefault) - | (FieldType::Scalar(ScalarType::F32), FieldModifier::UseDefault) => { + (FieldType::Scalar(ScalarType::F64 | ScalarType::F32), FieldModifier::UseDefault) => { write!(writer, "self.{} != 0.", member.rust_field_name()) } (FieldType::Scalar(ScalarType::Bool), FieldModifier::UseDefault) => { write!(writer, "self.{}", member.rust_field_name()) } - (FieldType::Enum(_), FieldModifier::UseDefault) - | (FieldType::Scalar(ScalarType::I64), FieldModifier::UseDefault) - | (FieldType::Scalar(ScalarType::I32), FieldModifier::UseDefault) - | (FieldType::Scalar(ScalarType::U32), FieldModifier::UseDefault) - | (FieldType::Scalar(ScalarType::U64), FieldModifier::UseDefault) => { + ( + FieldType::Enum(_) + | FieldType::Scalar( + ScalarType::I64 | ScalarType::I32 | ScalarType::U32 | ScalarType::U64, + ), + FieldModifier::UseDefault, + ) => { write!(writer, "self.{} != 0", member.rust_field_name()) } } @@ -280,9 +280,7 @@ fn write_serialize_variable( FieldType::Map(_, value_type) if matches!( value_type.as_ref(), - FieldType::Scalar(ScalarType::I64) - | FieldType::Scalar(ScalarType::U64) - | FieldType::Scalar(ScalarType::Bytes) + FieldType::Scalar(ScalarType::I64 | ScalarType::U64 | ScalarType::Bytes) | FieldType::Enum(_) ) => { @@ -294,7 +292,7 @@ fn write_serialize_variable( )?; match value_type.as_ref() { - FieldType::Scalar(ScalarType::I64) | FieldType::Scalar(ScalarType::U64) => { + FieldType::Scalar(ScalarType::I64 | ScalarType::U64) => { writeln!( writer, "{}.map(|(k, v)| (k, v.to_string())).collect();", @@ -631,7 +629,7 @@ fn write_deserialize_message( field = field.rust_field_name() )?; } - _ => { + FieldModifier::Optional => { writeln!( writer, "{indent}{field}: {field}__,", @@ -1005,16 +1003,13 @@ fn write_encode_scalar_field( field_modifier: FieldModifier, writer: &mut W, ) -> Result<()> { - let deserializer = match override_deserializer(scalar) { - Some(deserializer) => deserializer, - None => { - return match field_modifier { - FieldModifier::Optional => { - write!(writer, "map_.next_value()?") - } - _ => write!(writer, "Some(map_.next_value()?)"), - }; - } + let Some(deserializer) = override_deserializer(scalar) else { + return match field_modifier { + FieldModifier::Optional => { + write!(writer, "map_.next_value()?") + } + _ => write!(writer, "Some(map_.next_value()?)"), + }; }; writeln!(writer)?;