Skip to content

Commit 412e340

Browse files
committed
rust: update prost to 0.11.5
1 parent 220150e commit 412e340

File tree

18 files changed

+213
-93
lines changed

18 files changed

+213
-93
lines changed

src/rust/Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/rust/bitbox02-rust/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ default-features = false
5656

5757
[dependencies.prost]
5858
# keep version in sync with tools/prost-build/Cargo.toml.
59-
version = "0.10.1"
59+
version = "0.11.5"
6060
default-features = false
6161
features = ["prost-derive"]
6262

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"files":{"Cargo.toml":"a524746072dd109475e1683f3affa057a0213d5d53f6742fa4317237a98a4259","LICENSE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","README.md":"6c67fa1e48f14adfaf834f520f798ddfb79f90804f46cc215ee391a7d57913a4","src/field/group.rs":"0370fda09a6dc7e8e91cfab1a6638c0117f0b968bcc7d1a8f397c2bf00042481","src/field/map.rs":"59a53d7d8391452d4d32f077a385e5eeeb8777482041194490f2494117cb39a1","src/field/message.rs":"a5672412435bb9fafbd4a99b1a6c6d5bbf636a571959358a44196bfd69efc2d1","src/field/mod.rs":"ca917a3f673623f0946e9e37ebad2916f3c1f8d163a1844143ef7d21d245394c","src/field/oneof.rs":"4fc488445b05e464070fadd8799cafb806db5c23d1494c4300cb293394863012","src/field/scalar.rs":"687617fd54f1acfe55bc2d9f11d36552b8a546b5dd43b1bccdfd2c14bf8850e5","src/lib.rs":"4dbc81036c4641c0d8e24c6f978623e205a74ec7b79a3475f0996b5f8fc666d4"},"package":"7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc"}
1+
{"files":{"Cargo.toml":"830ca416b545d756142214029e79dd0def97b991527623943fce4275667628d4","LICENSE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","README.md":"6c67fa1e48f14adfaf834f520f798ddfb79f90804f46cc215ee391a7d57913a4","src/field/group.rs":"0370fda09a6dc7e8e91cfab1a6638c0117f0b968bcc7d1a8f397c2bf00042481","src/field/map.rs":"30b678fbbeca1411e7e16f2dfeadf38860ba654266ad66da16019369153618f2","src/field/message.rs":"a5672412435bb9fafbd4a99b1a6c6d5bbf636a571959358a44196bfd69efc2d1","src/field/mod.rs":"5265820ea953a100ee33db71c416f72bac5e1dd375a98ebdd6755a334f5bed0f","src/field/oneof.rs":"4fc488445b05e464070fadd8799cafb806db5c23d1494c4300cb293394863012","src/field/scalar.rs":"6859f9910a12a2864397f7f6fa36541c992c43b3ff8d15d4191aa93e92f5b078","src/lib.rs":"8ba979a94503dcd8d487237e856367a0a345b4873de7a73135c1b577ecb16bd9"},"package":"c8842bad1a5419bca14eac663ba798f6bc19c413c2fdceb5f3ba3b0932d96720"}

src/rust/vendor/prost-derive/Cargo.toml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
# See Cargo.toml.orig for the original contents.
1111

1212
[package]
13-
edition = "2018"
13+
edition = "2021"
14+
rust-version = "1.56"
1415
name = "prost-derive"
15-
version = "0.10.1"
16+
version = "0.11.5"
1617
authors = [
1718
"Dan Burkert <[email protected]>",
19+
"Lucio Franco <[email protected]>",
1820
"Tokio Contributors <[email protected]>",
1921
]
2022
description = "A Protocol Buffers implementation for the Rust Language."
@@ -27,10 +29,12 @@ repository = "https://github.com/tokio-rs/prost"
2729
proc_macro = true
2830

2931
[dependencies.anyhow]
30-
version = "1"
32+
version = "1.0.1"
3133

3234
[dependencies.itertools]
3335
version = "0.10"
36+
features = ["use_alloc"]
37+
default-features = false
3438

3539
[dependencies.proc-macro2]
3640
version = "1"
@@ -39,5 +43,5 @@ version = "1"
3943
version = "1"
4044

4145
[dependencies.syn]
42-
version = "1"
46+
version = "1.0.3"
4347
features = ["extra-traits"]

src/rust/vendor/prost-derive/src/field/map.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ impl Field {
6565
.get_ident()
6666
.and_then(|i| MapTy::from_str(&i.to_string()))
6767
{
68-
let (k, v): (String, String) = match &*attr {
68+
let (k, v): (String, String) = match attr {
6969
Meta::NameValue(MetaNameValue {
7070
lit: Lit::Str(lit), ..
7171
}) => {
@@ -257,7 +257,7 @@ impl Field {
257257
}
258258

259259
/// Returns methods to embed in the message.
260-
pub fn methods(&self, ident: &Ident) -> Option<TokenStream> {
260+
pub fn methods(&self, ident: &TokenStream) -> Option<TokenStream> {
261261
if let ValueTy::Scalar(scalar::Ty::Enumeration(ty)) = &self.value_ty {
262262
let key_ty = self.key_ty.rust_type();
263263
let key_ref_ty = self.key_ty.rust_ref_type();

src/rust/vendor/prost-derive/src/field/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::slice;
1010
use anyhow::{bail, Error};
1111
use proc_macro2::TokenStream;
1212
use quote::quote;
13-
use syn::{Attribute, Ident, Lit, LitBool, Meta, MetaList, MetaNameValue, NestedMeta};
13+
use syn::{Attribute, Lit, LitBool, Meta, MetaList, MetaNameValue, NestedMeta};
1414

1515
#[derive(Clone)]
1616
pub enum Field {
@@ -164,7 +164,7 @@ impl Field {
164164
}
165165
}
166166

167-
pub fn methods(&self, ident: &Ident) -> Option<TokenStream> {
167+
pub fn methods(&self, ident: &TokenStream) -> Option<TokenStream> {
168168
match *self {
169169
Field::Scalar(ref scalar) => scalar.methods(ident),
170170
Field::Map(ref map) => map.methods(ident),

src/rust/vendor/prost-derive/src/field/scalar.rs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ use std::fmt;
44
use anyhow::{anyhow, bail, Error};
55
use proc_macro2::{Span, TokenStream};
66
use quote::{quote, ToTokens, TokenStreamExt};
7-
use syn::{parse_str, Ident, Lit, LitByteStr, Meta, MetaList, MetaNameValue, NestedMeta, Path};
7+
use syn::{
8+
parse_str, Ident, Index, Lit, LitByteStr, Meta, MetaList, MetaNameValue, NestedMeta, Path,
9+
};
810

911
use crate::field::{bool_attr, set_option, tag_attr, Label};
1012

@@ -267,12 +269,21 @@ impl Field {
267269
}
268270

269271
/// Returns methods to embed in the message.
270-
pub fn methods(&self, ident: &Ident) -> Option<TokenStream> {
272+
pub fn methods(&self, ident: &TokenStream) -> Option<TokenStream> {
271273
let mut ident_str = ident.to_string();
272274
if ident_str.starts_with("r#") {
273275
ident_str = ident_str[2..].to_owned();
274276
}
275277

278+
// Prepend `get_` for getter methods of tuple structs.
279+
let get = match syn::parse_str::<Index>(&ident_str) {
280+
Ok(index) => {
281+
let get = Ident::new(&format!("get_{}", index.index), Span::call_site());
282+
quote!(#get)
283+
}
284+
Err(_) => quote!(#ident),
285+
};
286+
276287
if let Ty::Enumeration(ref ty) = self.ty {
277288
let set = Ident::new(&format!("set_{}", ident_str), Span::call_site());
278289
let set_doc = format!("Sets `{}` to the provided enum value.", ident_str);
@@ -285,7 +296,7 @@ impl Field {
285296
);
286297
quote! {
287298
#[doc=#get_doc]
288-
pub fn #ident(&self) -> #ty {
299+
pub fn #get(&self) -> #ty {
289300
#ty::from_i32(self.#ident).unwrap_or(#default)
290301
}
291302

@@ -303,7 +314,7 @@ impl Field {
303314
);
304315
quote! {
305316
#[doc=#get_doc]
306-
pub fn #ident(&self) -> #ty {
317+
pub fn #get(&self) -> #ty {
307318
self.#ident.and_then(#ty::from_i32).unwrap_or(#default)
308319
}
309320

@@ -322,7 +333,7 @@ impl Field {
322333
let push_doc = format!("Appends the provided enum value to `{}`.", ident_str);
323334
quote! {
324335
#[doc=#iter_doc]
325-
pub fn #ident(&self) -> ::core::iter::FilterMap<
336+
pub fn #get(&self) -> ::core::iter::FilterMap<
326337
::core::iter::Cloned<::core::slice::Iter<i32>>,
327338
fn(i32) -> ::core::option::Option<#ty>,
328339
> {
@@ -351,7 +362,7 @@ impl Field {
351362

352363
Some(quote! {
353364
#[doc=#get_doc]
354-
pub fn #ident(&self) -> #ty {
365+
pub fn #get(&self) -> #ty {
355366
match self.#ident {
356367
#match_some
357368
::core::option::Option::None => #default,

src/rust/vendor/prost-derive/src/lib.rs

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![doc(html_root_url = "https://docs.rs/prost-derive/0.10.1")]
1+
#![doc(html_root_url = "https://docs.rs/prost-derive/0.11.5")]
22
// The `quote!` macro requires deep recursion.
33
#![recursion_limit = "4096"]
44

@@ -12,7 +12,7 @@ use proc_macro2::Span;
1212
use quote::quote;
1313
use syn::{
1414
punctuated::Punctuated, Data, DataEnum, DataStruct, DeriveInput, Expr, Fields, FieldsNamed,
15-
FieldsUnnamed, Ident, Variant,
15+
FieldsUnnamed, Ident, Index, Variant,
1616
};
1717

1818
mod field;
@@ -32,32 +32,36 @@ fn try_message(input: TokenStream) -> Result<TokenStream, Error> {
3232
let generics = &input.generics;
3333
let (impl_generics, ty_generics, where_clause) = generics.split_for_impl();
3434

35-
let fields = match variant_data {
35+
let (is_struct, fields) = match variant_data {
3636
DataStruct {
3737
fields: Fields::Named(FieldsNamed { named: fields, .. }),
3838
..
39-
}
40-
| DataStruct {
39+
} => (true, fields.into_iter().collect()),
40+
DataStruct {
4141
fields:
4242
Fields::Unnamed(FieldsUnnamed {
4343
unnamed: fields, ..
4444
}),
4545
..
46-
} => fields.into_iter().collect(),
46+
} => (false, fields.into_iter().collect()),
4747
DataStruct {
4848
fields: Fields::Unit,
4949
..
50-
} => Vec::new(),
50+
} => (false, Vec::new()),
5151
};
5252

5353
let mut next_tag: u32 = 1;
5454
let mut fields = fields
5555
.into_iter()
5656
.enumerate()
57-
.flat_map(|(idx, field)| {
58-
let field_ident = field
59-
.ident
60-
.unwrap_or_else(|| Ident::new(&idx.to_string(), Span::call_site()));
57+
.flat_map(|(i, field)| {
58+
let field_ident = field.ident.map(|x| quote!(#x)).unwrap_or_else(|| {
59+
let index = Index {
60+
index: i as u32,
61+
span: Span::call_site(),
62+
};
63+
quote!(#index)
64+
});
6165
match Field::new(field.attrs, Some(next_tag)) {
6266
Ok(Some(field)) => {
6367
next_tag = field.tags().iter().max().map(|t| t + 1).unwrap_or(next_tag);
@@ -124,17 +128,27 @@ fn try_message(input: TokenStream) -> Result<TokenStream, Error> {
124128
)
125129
};
126130

127-
// TODO
128-
let is_struct = true;
129-
130131
let clear = fields
131132
.iter()
132133
.map(|&(ref field_ident, ref field)| field.clear(quote!(self.#field_ident)));
133134

134-
let default = fields.iter().map(|&(ref field_ident, ref field)| {
135-
let value = field.default();
136-
quote!(#field_ident: #value,)
137-
});
135+
let default = if is_struct {
136+
let default = fields.iter().map(|(field_ident, field)| {
137+
let value = field.default();
138+
quote!(#field_ident: #value,)
139+
});
140+
quote! {#ident {
141+
#(#default)*
142+
}}
143+
} else {
144+
let default = fields.iter().map(|(_, field)| {
145+
let value = field.default();
146+
quote!(#value,)
147+
});
148+
quote! {#ident (
149+
#(#default)*
150+
)}
151+
};
138152

139153
let methods = fields
140154
.iter()
@@ -206,9 +220,7 @@ fn try_message(input: TokenStream) -> Result<TokenStream, Error> {
206220

207221
impl #impl_generics ::core::default::Default for #ident #ty_generics #where_clause {
208222
fn default() -> Self {
209-
#ident {
210-
#(#default)*
211-
}
223+
#default
212224
}
213225
}
214226

@@ -424,12 +436,14 @@ fn try_oneof(input: TokenStream) -> Result<TokenStream, Error> {
424436

425437
let expanded = quote! {
426438
impl #impl_generics #ident #ty_generics #where_clause {
439+
/// Encodes the message to a buffer.
427440
pub fn encode<B>(&self, buf: &mut B) where B: ::prost::bytes::BufMut {
428441
match *self {
429442
#(#encode,)*
430443
}
431444
}
432445

446+
/// Decodes an instance of the message from a buffer, and merges it into self.
433447
pub fn merge<B>(
434448
field: &mut ::core::option::Option<#ident #ty_generics>,
435449
tag: u32,
@@ -444,6 +458,7 @@ fn try_oneof(input: TokenStream) -> Result<TokenStream, Error> {
444458
}
445459
}
446460

461+
/// Returns the encoded length of the message without a length delimiter.
447462
#[inline]
448463
pub fn encoded_len(&self) -> usize {
449464
match *self {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"files":{"Cargo.toml":"a3c03b0feb9f65f64544ef348c0e0bb0743988d885a7206c16d3a043fb6f445e","FUZZING.md":"0223441ab805f2ccfda9f172955446c3287e1e125cc68814f77a46573935feba","LICENSE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","README.md":"8aa92df9aa43ce25e7d80b8c7cf3e06fa66b4f7ee5005b06c62ad175f37998b2","benches/varint.rs":"25e28eadeb5092882281eaa16307ae72cbdabe04a308c9cfe15d3a62c8ead40b","clippy.toml":"10eea08f9e26e0dc498e431ac3a62b861bd74029d1cad8a394284af4cbc90532","prepare-release.sh":"67f42e0649d33269c88272e69a9bf48d02de42126a9942ac6298b6995adea8df","publish-release.sh":"a9ff9a5a65a6772fbe115b64051b1284b0b81825f839a65594d6834c53d7a78f","src/encoding.rs":"19e7af9bb48a8ec33c879ac3d8e97293b2e361164f8ef519ef477c1be4472b01","src/error.rs":"bfccee0fc06836f9b32b1cdb631237031d0ba8e1bc82548db3c4a6c10c06e784","src/lib.rs":"abe91e0518ec38109082b3c393fb1cdc38f5292023fd1859ab27893825f91c5e","src/message.rs":"e4f85ffe6f0a66778b782199e29d450ec53a10e818e20199b15bb1d11d067521","src/types.rs":"edfefaf56ab4bc12c98cbcd9d0b3ca18c10352217556c193be6314990ecffd9c"},"package":"a07b0857a71a8cb765763950499cae2413c3f9cede1133478c43600d9e146890"}
1+
{"files":{"Cargo.toml":"183851a02065eed014bb2d63b45c15f4912e64552f82ce4c6b34a82bbd97b132","FUZZING.md":"90e5d9ae4cf3b975a7f917224cec20d5d757a9ca33e2bd6d3e2bb984409d3292","LICENSE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","README.md":"310f382a949d2af22e1ab4299b7b9c037f551790d4279df70d12c5822b790d86","benches/varint.rs":"25e28eadeb5092882281eaa16307ae72cbdabe04a308c9cfe15d3a62c8ead40b","clippy.toml":"10eea08f9e26e0dc498e431ac3a62b861bd74029d1cad8a394284af4cbc90532","flake.lock":"c0f731ad4db81f7f120a79a6dac4467970d410b9942688eb6286cd6f3e8c1f01","flake.nix":"8a0c3832f50cf2a134effaf269ae78189e5fcaae15de2a512f12685102217ef1","prepare-release.sh":"67f42e0649d33269c88272e69a9bf48d02de42126a9942ac6298b6995adea8df","publish-release.sh":"0cf0c6ec2765f19d45e271d005a6ad46f7b9b00241ba8a915ece8d100062546b","src/encoding.rs":"bcaeeecb90826f37dde6ee6c3d657ff4d69d6fe0e865e3a256665086d046400f","src/error.rs":"bfccee0fc06836f9b32b1cdb631237031d0ba8e1bc82548db3c4a6c10c06e784","src/lib.rs":"4475109102d73957b4bc18337551ca1da7c6b02896c9cb694d90692af480ba02","src/message.rs":"e4f85ffe6f0a66778b782199e29d450ec53a10e818e20199b15bb1d11d067521","src/types.rs":"edfefaf56ab4bc12c98cbcd9d0b3ca18c10352217556c193be6314990ecffd9c"},"package":"c01db6702aa05baa3f57dec92b8eeeeb4cb19e894e73996b32a4093289e54592"}

src/rust/vendor/prost/Cargo.toml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
# See Cargo.toml.orig for the original contents.
1111

1212
[package]
13-
edition = "2018"
13+
edition = "2021"
14+
rust-version = "1.56"
1415
name = "prost"
15-
version = "0.10.1"
16+
version = "0.11.5"
1617
authors = [
1718
"Dan Burkert <[email protected]>",
19+
"Lucio Franco <[email protected]",
1820
"Tokio Contributors <[email protected]>",
1921
]
2022
description = "A Protocol Buffers implementation for the Rust Language."
@@ -43,7 +45,7 @@ version = "1"
4345
default-features = false
4446

4547
[dependencies.prost-derive]
46-
version = "0.10.0"
48+
version = "0.11.5"
4749
optional = true
4850

4951
[dev-dependencies.criterion]

0 commit comments

Comments
 (0)