Clean warnings
This commit is contained in:
@@ -5,9 +5,9 @@ use roto::google::protobuf::descriptor::{
|
||||
FileDescriptorSet
|
||||
};
|
||||
use roto::google::protobuf::compiler::plugin::{
|
||||
CodeGeneratorRequest, CodeGeneratorResponse, CodeGeneratorResponseBuilder, code_generator_response::{File, FileBuilder},
|
||||
CodeGeneratorRequest, CodeGeneratorResponseBuilder, code_generator_response::FileBuilder,
|
||||
};
|
||||
use roto::ProtoBuilder;
|
||||
// use roto::ProtoBuilder;
|
||||
use std::io::{self, Read, Write};
|
||||
|
||||
fn main() {
|
||||
|
||||
+38
-32
@@ -1,10 +1,7 @@
|
||||
use crate::google::protobuf::descriptor::{
|
||||
DescriptorProto, EnumDescriptorProto, FileDescriptorProto, FieldDescriptorProto, FileDescriptorSet
|
||||
};
|
||||
use crate::google::protobuf::compiler::plugin::{
|
||||
CodeGeneratorRequest, CodeGeneratorResponse, code_generator_response::File,
|
||||
};
|
||||
use crate::{ProtoAccessor, Result, RotoError};
|
||||
use crate::ProtoAccessor;
|
||||
use std::str;
|
||||
use std::collections::{HashMap, HashSet};
|
||||
|
||||
@@ -91,7 +88,6 @@ fn write_enum(enum_proto: &EnumDescriptorProto, output: &mut String) {
|
||||
));
|
||||
|
||||
let mut values = enum_proto.value();
|
||||
let mut variant_count = 0;
|
||||
let mut zero_variant_name = None;
|
||||
while let Some(val_res) = values.next() {
|
||||
let (val_data, _) = val_res.expect("Failed to iterate enum");
|
||||
@@ -106,7 +102,6 @@ fn write_enum(enum_proto: &EnumDescriptorProto, output: &mut String) {
|
||||
zero_variant_name = Some(pascal_name.clone());
|
||||
}
|
||||
output.push_str(&format!(" {} = {},\n", pascal_name, num));
|
||||
variant_count += 1;
|
||||
}
|
||||
|
||||
if zero_variant_name.is_none() {
|
||||
@@ -140,11 +135,6 @@ fn write_enum(enum_proto: &EnumDescriptorProto, output: &mut String) {
|
||||
fn write_message(msg_proto: &DescriptorProto, output: &mut String) {
|
||||
let msg_name = to_pascal_case(msg_proto.name().unwrap());
|
||||
|
||||
output.push_str(&format!(
|
||||
"pub struct {}<'a> {{\n accessor: crate::ProtoAccessor<'a>,\n",
|
||||
msg_name
|
||||
));
|
||||
|
||||
let mut fields_info = Vec::new();
|
||||
for field_res in msg_proto.field() {
|
||||
let (field_data, _) = field_res.expect("Failed to iterate field");
|
||||
@@ -156,8 +146,18 @@ fn write_message(msg_proto: &DescriptorProto, output: &mut String) {
|
||||
let f_label = field_proto.label().unwrap() as i32;
|
||||
|
||||
fields_info.push((field_name.to_string(), tag, f_type, f_label));
|
||||
}
|
||||
|
||||
if f_label == 3 {
|
||||
output.push_str(&format!(
|
||||
"pub struct {}<'a> {{\n",
|
||||
msg_name
|
||||
));
|
||||
if !fields_info.is_empty() {
|
||||
output.push_str(" accessor: crate::ProtoAccessor<'a>,\n");
|
||||
}
|
||||
|
||||
for (field_name, _tag, _f_type, f_label) in &fields_info {
|
||||
if *f_label == 3 {
|
||||
output.push_str(&format!(" {}_start: Option<usize>,\n", field_name));
|
||||
output.push_str(&format!(" {}_end: Option<usize>,\n", field_name));
|
||||
} else {
|
||||
@@ -168,34 +168,40 @@ fn write_message(msg_proto: &DescriptorProto, output: &mut String) {
|
||||
|
||||
output.push_str(&format!("impl<'a> {}<'a> {{\n", msg_name));
|
||||
output.push_str(" pub fn new(data: &'a [u8]) -> crate::Result<Self> {\n");
|
||||
output.push_str(" let accessor = crate::ProtoAccessor::new(data)?;\n");
|
||||
if !fields_info.is_empty() {
|
||||
output.push_str(" let accessor = crate::ProtoAccessor::new(data)?;\n");
|
||||
|
||||
for (name, _, _, label) in &fields_info {
|
||||
if *label == 3 {
|
||||
output.push_str(&format!(" let mut {}_start = None;\n", name));
|
||||
output.push_str(&format!(" let mut {}_end = None;\n", name));
|
||||
} else {
|
||||
output.push_str(&format!(" let mut {}_offset = None;\n", name));
|
||||
for (name, _, _, label) in &fields_info {
|
||||
if *label == 3 {
|
||||
output.push_str(&format!(" let mut {}_start = None;\n", name));
|
||||
output.push_str(&format!(" let mut {}_end = None;\n", name));
|
||||
} else {
|
||||
output.push_str(&format!(" let mut {}_offset = None;\n", name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output.push_str(" for item in accessor.fields() {\n");
|
||||
output.push_str(" let (offset, tag, _) = item?;\n");
|
||||
output.push_str(" for item in accessor.fields() {\n");
|
||||
output.push_str(" let (offset, tag, _) = item?;\n");
|
||||
|
||||
for (name, tag, _, label) in &fields_info {
|
||||
if *label == 3 {
|
||||
output.push_str(&format!(" if tag.field_number == {} {{\n", tag));
|
||||
output.push_str(&format!(" if {}_start.is_none() {{ {}_start = Some(offset); }}\n", name, name));
|
||||
output.push_str(&format!(" {}_end = Some(offset);\n", name));
|
||||
output.push_str(" }\n");
|
||||
} else {
|
||||
output.push_str(&format!(" if tag.field_number == {} {{ {}_offset = Some(offset); }}\n", tag, name));
|
||||
for (name, tag, _, label) in &fields_info {
|
||||
if *label == 3 {
|
||||
output.push_str(&format!(" if tag.field_number == {} {{\n", tag));
|
||||
output.push_str(&format!(" if {}_start.is_none() {{ {}_start = Some(offset); }}\n", name, name));
|
||||
output.push_str(&format!(" {}_end = Some(offset);\n", name));
|
||||
output.push_str(" }\n");
|
||||
} else {
|
||||
output.push_str(&format!(" if tag.field_number == {} {{ {}_offset = Some(offset); }}\n", tag, name));
|
||||
}
|
||||
}
|
||||
output.push_str(" }\n\n");
|
||||
} else {
|
||||
output.push_str(" let _ = crate::ProtoAccessor::new(data)?;\n");
|
||||
}
|
||||
output.push_str(" }\n\n");
|
||||
|
||||
output.push_str(" Ok(Self {\n");
|
||||
output.push_str(" accessor,\n");
|
||||
if !fields_info.is_empty() {
|
||||
output.push_str(" accessor,\n");
|
||||
}
|
||||
for (name, _, _, label) in &fields_info {
|
||||
if *label == 3 {
|
||||
output.push_str(&format!("{}_start, {}_end,\n", name, name));
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
use crate::{ProtoAccessor, ProtoBuilder, Result, RotoError, read_varint, RepeatedFieldIterator};
|
||||
use std::str;
|
||||
|
||||
use crate::google::protobuf::descriptor;
|
||||
// use crate::google::protobuf::descriptor;
|
||||
|
||||
pub struct Version<'a> {
|
||||
accessor: crate::ProtoAccessor<'a>,
|
||||
@@ -454,4 +453,3 @@ impl<'b> FileBuilder<'b> {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::{ProtoAccessor, ProtoBuilder, Result, RotoError, read_varint, RepeatedFieldIterator};
|
||||
use std::str;
|
||||
|
||||
|
||||
@@ -3948,6 +3947,7 @@ impl EnforceNamingStyle {
|
||||
}
|
||||
|
||||
pub struct VisibilityFeature<'a> {
|
||||
#[allow(dead_code)]
|
||||
accessor: crate::ProtoAccessor<'a>,
|
||||
}
|
||||
|
||||
@@ -3955,14 +3955,13 @@ impl<'a> VisibilityFeature<'a> {
|
||||
pub fn new(data: &'a [u8]) -> crate::Result<Self> {
|
||||
let accessor = crate::ProtoAccessor::new(data)?;
|
||||
for item in accessor.fields() {
|
||||
let (offset, tag, _) = item?;
|
||||
let (_offset, _tag, _) = item?;
|
||||
}
|
||||
|
||||
Ok(Self {
|
||||
accessor,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
pub struct VisibilityFeatureBuilder<'b> {
|
||||
@@ -4008,6 +4007,7 @@ impl DefaultSymbolVisibility {
|
||||
}
|
||||
|
||||
pub struct ProtoLimitsFeature<'a> {
|
||||
#[allow(dead_code)]
|
||||
accessor: crate::ProtoAccessor<'a>,
|
||||
}
|
||||
|
||||
@@ -4015,14 +4015,13 @@ impl<'a> ProtoLimitsFeature<'a> {
|
||||
pub fn new(data: &'a [u8]) -> crate::Result<Self> {
|
||||
let accessor = crate::ProtoAccessor::new(data)?;
|
||||
for item in accessor.fields() {
|
||||
let (offset, tag, _) = item?;
|
||||
let (_offset, _tag, _) = item?;
|
||||
}
|
||||
|
||||
Ok(Self {
|
||||
accessor,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
pub struct ProtoLimitsFeatureBuilder<'b> {
|
||||
@@ -4611,4 +4610,3 @@ impl Semantic {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
use std::fs;
|
||||
use std::process::Command;
|
||||
use std::path::PathBuf;
|
||||
use roto::google::protobuf::descriptor::{
|
||||
FileDescriptorSet
|
||||
};
|
||||
use roto::google::protobuf::compiler::plugin::{
|
||||
CodeGeneratorRequest, CodeGeneratorResponse, CodeGeneratorResponseBuilder, code_generator_response::{File, FileBuilder},
|
||||
CodeGeneratorRequest,
|
||||
};
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -18,7 +18,7 @@ fn test_nested_proto_generation_contains_modules() {
|
||||
// but request.bin is usually a CodeGeneratorRequest.
|
||||
|
||||
// Let's use the same logic as build_generated_code.rs to get a FileDescriptorSet
|
||||
let request = roto::proto_gen::google::protobuf::compiler::plugin::CodeGeneratorRequest::new(&data)
|
||||
let request = roto::google::protobuf::compiler::plugin::CodeGeneratorRequest::new(&data)
|
||||
.expect("Failed to parse CodeGeneratorRequest");
|
||||
|
||||
let mut set_buf = Vec::new();
|
||||
|
||||
Reference in New Issue
Block a user