Skip to content

Commit 5bd3abc

Browse files
committed
Fix (clippy) warnings in Rust generate code
Also fix (clippy) warnings in Rust tests Tested against rustc version 1.63.0. After this is merged and the new generator is released, additional flag `--all-targets` can be added to `cargo test` in CI.
1 parent b1d77cb commit 5bd3abc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2867
-2568
lines changed

flatdata-generator/flatdata/generator/templates/rust/archive.jinja2

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,13 @@ impl ::std::fmt::Debug for {{archive.name}} {
109109
}
110110

111111
impl {{archive.name}} {
112+
#[allow(unused_imports, unused_variables)]
112113
pub fn open(storage: flatdata::StorageHandle)
113114
-> ::std::result::Result<Self, flatdata::ResourceStorageError>
114115
{
115-
#[allow(unused_imports)]
116116
use flatdata::SliceExt;
117-
#[allow(unused_variables)]
118117
use flatdata::ResourceStorageError as Error;
119118
// extend lifetime since Rust cannot know that we reference a cache here
120-
#[allow(unused_variables)]
121119
let extend = |x : Result<&[u8], Error>| -> Result<&'static [u8], Error> {x.map(|x| unsafe{std::mem::transmute(x)})};
122120

123121
storage.read(&Self::signature_name("{{archive.name}}"), schema::{{ archive_ns }}::{{ archive.name | camel_to_snake_case | upper }})?;
@@ -129,17 +127,17 @@ impl {{archive.name}} {
129127
{% if [r] | vector_resources %}
130128
{% set t = fully_qualified_name(archive, r.referenced_structures[0].node) %}
131129
let resource = extend(storage.read("{{r.name}}", schema::{{ archive_ns }}::resources::{{ r.name | upper }}));
132-
check("{{ r.name }}", |r| r.len(), max_size, resource.and_then(|x| <&[{{t}}]>::from_bytes(x)))?
130+
check("{{ r.name }}", |r| r.len(), max_size, resource.and_then(<&[{{t}}]>::from_bytes))?
133131
{% elif [r] | instance_resources %}
134132
{% set t = fully_qualified_name(archive, r.referenced_structures[0].node) %}
135133
let resource = extend(storage.read("{{r.name}}", schema::{{ archive_ns }}::resources::{{ r.name | upper }}));
136-
check("{{ r.name }}", |_| 0, max_size, resource.and_then(|x| {{t}}::from_bytes_slice(x)))?
134+
check("{{ r.name }}", |_| 0, max_size, resource.and_then({{t}}::from_bytes_slice))?
137135
{% elif [r] | rawdata_resources %}
138136
let resource = extend(storage.read("{{r.name}}", schema::{{ archive_ns }}::resources::{{ r.name | upper }}));
139-
check("{{ r.name }}", |r| r.len(), max_size, resource.map(|x| flatdata::RawData::new(x)))?
137+
check("{{ r.name }}", |r| r.len(), max_size, resource.map(flatdata::RawData::new))?
140138
{% elif [r] | multivector_resources %}
141139
{% set i = fully_qualified_name(archive, r.index_reference.node) %}
142-
let index_schema = &format!("index({})", schema::{{ archive_ns }}::resources::{{ r.name | upper }});
140+
let index_schema = format!("index({})", schema::{{ archive_ns }}::resources::{{ r.name | upper }});
143141
let index = extend(storage.read("{{r.name}}_index", &index_schema));
144142
let data = extend(storage.read("{{r.name}}", schema::{{ archive_ns }}::resources::{{ r.name | upper }}));
145143
let result = match (index, data) {

flatdata-generator/flatdata/generator/templates/rust/structure.jinja2

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ pub struct {{struct.name}} {
1111
}
1212

1313
impl {{ struct.name }} {
14+
/// # Safety
15+
///
1416
/// Unsafe since the struct might not be self-contained
1517
pub unsafe fn new_unchecked( ) -> Self {
1618
Self{data : [0; {{ struct.size_in_bytes }}]}
@@ -45,6 +47,7 @@ impl {{ struct.name }} {
4547
}
4648

4749
/// Create reference from byte array
50+
#[allow(clippy::len_zero)]
4851
pub fn from_bytes_slice(data: &[u8]) -> Result<&Self, flatdata::ResourceStorageError> {
4952
// We cannot rely on TryFrom here, since it does not yet support > 33 bytes
5053
if data.len() < {{ struct.size_in_bytes }} {
@@ -57,6 +60,7 @@ impl {{ struct.name }} {
5760
}
5861

5962
/// Create reference from byte array
63+
#[allow(clippy::len_zero)]
6064
pub fn from_bytes_slice_mut(data: &mut [u8]) -> Result<&mut Self, flatdata::ResourceStorageError> {
6165
// We cannot rely on TryFrom here, since it does not yet support > 33 bytes
6266
if data.len() < {{ struct.size_in_bytes }} {
@@ -94,6 +98,7 @@ impl {{ struct.name }} {
9498
/// [`{{ field.range | escape_rust_keywords }}`]: #method.{{ field.range | escape_rust_keywords }}
9599
{% endif %}
96100
#[inline]
101+
#[allow(clippy::useless_transmute)]
97102
pub fn {{ field.name | escape_rust_keywords }}(&self) -> {% if field.invalid_value %}Option<{{ field | field_type }}>{% else %}{{ field | field_type }}{% endif %} {
98103
let value = flatdata_read_bytes!({{ field | primitive_type }}, self.data.as_ptr(), {{ field.offset }}, {{ field.type.width }});
99104
{% if field.invalid_value %}
@@ -109,6 +114,7 @@ impl {{ struct.name }} {
109114
{{ field.doc | rust_doc }}
110115
{% endif %}
111116
#[inline]
117+
#[allow(clippy::identity_op)]
112118
pub fn {{ field.range | escape_rust_keywords }}(&self) -> std::ops::Range<{% if field.invalid_value %}Option<{{ field | field_type }}>{% else %}{{ field | field_type }}{% endif %}> {
113119
let start = flatdata_read_bytes!({{ field.type.name }}, self.data.as_ptr(), {{ field.offset }}, {{ field.type.width }});
114120
let end = flatdata_read_bytes!({{ field.type.name }}, self.data.as_ptr(), {{ field.offset }} + {{ struct.size_in_bytes }} * 8, {{ field.type.width }});

flatdata-generator/flatdata/generator/templates/rust/variadic.jinja2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ impl<'a> {{name}}Builder<'a> {
5252
///
5353
/// [`{{type.node.name}}`]: struct.{{type.node.name}}.html
5454
#[inline]
55-
pub fn add_{{ type.node.name | camel_to_snake_case }}<'b>(&'b mut self) -> &'b mut {{inner_type}} {
55+
pub fn add_{{ type.node.name | camel_to_snake_case }}(&mut self) -> &mut {{inner_type}} {
5656
let old_len = self.data.len();
5757
let increment = 1 + <{{inner_type}} as flatdata::Struct>::SIZE_IN_BYTES;
5858
self.data.resize(old_len + increment, 0);
@@ -101,7 +101,7 @@ impl<'a> flatdata::VariadicStruct<'a> for {{name}} {
101101
match index {
102102
{% for type in types %}
103103
{% set inner_type = fully_qualified_name(archive, type.node) %}
104-
{{loop.index0}} => {{name}}Ref::{{type.node.name}}({{inner_type}}::from_bytes_slice(&data).expect("Corrupted data")),
104+
{{loop.index0}} => {{name}}Ref::{{type.node.name}}({{inner_type}}::from_bytes_slice(data).expect("Corrupted data")),
105105
{% endfor %}
106106
_ => panic!("invalid type index {} for variadic type {{name}}Ref", index),
107107
}

flatdata-generator/tests/generators/rust_expectations/archives/comments.rs.1

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@ impl ::std::fmt::Debug for Foo {
2727
}
2828

2929
impl Foo {
30+
#[allow(unused_imports, unused_variables)]
3031
pub fn open(storage: flatdata::StorageHandle)
3132
-> ::std::result::Result<Self, flatdata::ResourceStorageError>
3233
{
33-
#[allow(unused_imports)]
3434
use flatdata::SliceExt;
35-
#[allow(unused_variables)]
3635
use flatdata::ResourceStorageError as Error;
3736
// extend lifetime since Rust cannot know that we reference a cache here
38-
#[allow(unused_variables)]
3937
let extend = |x : Result<&[u8], Error>| -> Result<&'static [u8], Error> {x.map(|x| unsafe{std::mem::transmute(x)})};
4038

4139
storage.read(&Self::signature_name("Foo"), schema::foo::FOO)?;
@@ -44,10 +42,9 @@ impl Foo {
4442
use flatdata::check_resource as check;
4543
let max_size = None;
4644
let resource = extend(storage.read("bar", schema::foo::resources::BAR));
47-
check("bar", |r| r.len(), max_size, resource.map(|x| flatdata::RawData::new(x)))?
45+
check("bar", |r| r.len(), max_size, resource.map(flatdata::RawData::new))?
4846
};
4947

50-
5148
Ok(Self {
5249
_storage: storage,
5350
bar,
@@ -115,15 +112,13 @@ impl ::std::fmt::Debug for Bar {
115112
}
116113

117114
impl Bar {
115+
#[allow(unused_imports, unused_variables)]
118116
pub fn open(storage: flatdata::StorageHandle)
119117
-> ::std::result::Result<Self, flatdata::ResourceStorageError>
120118
{
121-
#[allow(unused_imports)]
122119
use flatdata::SliceExt;
123-
#[allow(unused_variables)]
124120
use flatdata::ResourceStorageError as Error;
125121
// extend lifetime since Rust cannot know that we reference a cache here
126-
#[allow(unused_variables)]
127122
let extend = |x : Result<&[u8], Error>| -> Result<&'static [u8], Error> {x.map(|x| unsafe{std::mem::transmute(x)})};
128123

129124
storage.read(&Self::signature_name("Bar"), schema::bar::BAR)?;
@@ -132,10 +127,9 @@ impl Bar {
132127
use flatdata::check_resource as check;
133128
let max_size = None;
134129
let resource = extend(storage.read("foo", schema::bar::resources::FOO));
135-
check("foo", |r| r.len(), max_size, resource.map(|x| flatdata::RawData::new(x)))?
130+
check("foo", |r| r.len(), max_size, resource.map(flatdata::RawData::new))?
136131
};
137132

138-
139133
Ok(Self {
140134
_storage: storage,
141135
foo,

flatdata-generator/tests/generators/rust_expectations/archives/empty.rs.1

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,13 @@ impl ::std::fmt::Debug for A {
1818
}
1919

2020
impl A {
21+
#[allow(unused_imports, unused_variables)]
2122
pub fn open(storage: flatdata::StorageHandle)
2223
-> ::std::result::Result<Self, flatdata::ResourceStorageError>
2324
{
24-
#[allow(unused_imports)]
2525
use flatdata::SliceExt;
26-
#[allow(unused_variables)]
2726
use flatdata::ResourceStorageError as Error;
2827
// extend lifetime since Rust cannot know that we reference a cache here
29-
#[allow(unused_variables)]
3028
let extend = |x : Result<&[u8], Error>| -> Result<&'static [u8], Error> {x.map(|x| unsafe{std::mem::transmute(x)})};
3129

3230
storage.read(&Self::signature_name("A"), schema::a::A)?;
@@ -54,4 +52,4 @@ impl ABuilder {
5452
flatdata::create_archive("A", schema::a::A, &storage)?;
5553
Ok(Self { storage })
5654
}
57-
}
55+
}

0 commit comments

Comments
 (0)