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