some improvments on forms #144
Annotations
42 warnings
field assignment outside of initializer for an instance created with Default::default():
examples/src/bin/extract_page.rs#L77
warning: field assignment outside of initializer for an instance created with Default::default()
--> examples/src/bin/extract_page.rs:77:5
|
77 | info.title = Some(PdfString::from("test"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: consider initializing the variable with `pdf::object::InfoDict { title: Some(PdfString::from("test")), ..Default::default() }` and removing relevant reassignments
--> examples/src/bin/extract_page.rs:76:5
|
76 | let mut info = InfoDict::default();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default
= note: `#[warn(clippy::field_reassign_with_default)]` on by default
|
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`:
examples/src/bin/form.rs#L51
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
--> examples/src/bin/form.rs:51:17
|
51 | / match *normal {
52 | | AppearanceStreamEntry::Single(ref s) => {
53 | | //dbg!(&s.stream.resources);
54 | |
... |
73 | | _ => {}
74 | | }
| |_________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
= note: `#[warn(clippy::single_match)]` on by default
help: try
|
51 ~ if let AppearanceStreamEntry::Single(ref s) = *normal {
52 + //dbg!(&s.stream.resources);
53 +
54 + let form_dict = FormDict {
55 + resources: Some(resources.clone().into()),
56 + .. (**s.stream).clone()
57 + };
58 +
59 + let ops = vec![
60 + Op::Save,
61 + Op::TextFont { name: font_name.clone(), size: 14.0 },
62 + Op::TextDraw { text: PdfString::from("Hello World!") },
63 + Op::EndText,
64 + Op::Restore
65 + ];
66 + let stream = Stream::new(form_dict, serialize_ops(&ops)?);
67 +
68 + let normal2 = AppearanceStreamEntry::Single(FormXObject { stream });
69 +
70 + file.update(a.normal.get_inner(), normal2)?;
71 + }
|
|
unused variable: `reference`:
examples/src/bin/form.rs#L107
warning: unused variable: `reference`
--> examples/src/bin/form.rs:107:13
|
107 | let reference = file.update(
| ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reference`
|
= note: `#[warn(unused_variables)]` on by default
|
unused import: `Log`:
examples/src/bin/form.rs#L8
warning: unused import: `Log`
--> examples/src/bin/form.rs:8:30
|
8 | use pdf::file::{FileOptions, Log};
| ^^^
|
= note: `#[warn(unused_imports)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
pdf/src/build.rs#L268
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> pdf/src/build.rs:268:36
|
268 | match self.map.get(&r1) {
| ^^^ help: change this to: `r1`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression borrows a value the compiler would automatically borrow:
pdf/src/object/mod.rs#L759
warning: this expression borrows a value the compiler would automatically borrow
--> pdf/src/object/mod.rs:759:21
|
759 | Ok(Box::new((&**self).deep_clone(cloner)?))
| ^^^^^^^^^ help: change this to: `(**self)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `#[warn(clippy::needless_borrow)]` on by default
|
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec`:
pdf/src/object/mod.rs#L602
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec`
--> pdf/src/object/mod.rs:602:70
|
602 | Primitive::Array(ref parts) => Ok(Primitive::Array(parts.into_iter().map(|p| p.deep_clone(cloner)).try_collect()?)),
| ^^^^^^^^^ help: call directly: `iter`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref
= note: `#[warn(clippy::into_iter_on_ref)]` on by default
|
unused variable: `old`:
pdf/src/build.rs#L397
warning: unused variable: `old`
--> pdf/src/build.rs:397:22
|
397 | if let Some((old, new)) = self.shared.get(&key) {
| ^^^ help: if this is intentional, prefix it with an underscore: `_old`
|
unused variable: `cloner`:
pdf/src/encoding.rs#L105
warning: unused variable: `cloner`
--> pdf/src/encoding.rs:105:26
|
105 | fn deep_clone(&self, cloner: &mut impl pdf::object::Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
|
unused variable: `update`:
pdf/src/primitive.rs#L270
warning: unused variable: `update`
--> pdf/src/primitive.rs:270:28
|
270 | fn to_primitive(&self, update: &mut impl Updater) -> Result<Primitive> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `cloner`:
pdf/src/object/mod.rs#L766
warning: unused variable: `cloner`
--> pdf/src/object/mod.rs:766:38
|
766 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
...
773 | deep_clone_simple!(f32, i32, u32, bool, Name, (), Date, PdfString, Rect, u8, Arc<[u8]>, Vec<u16>);
| ------------------------------------------------------------------------------------------------- in this macro invocation
|
= note: this warning originates in the macro `deep_clone_simple` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unused variable: `range`:
pdf/src/object/mod.rs#L85
warning: unused variable: `range`
--> pdf/src/object/mod.rs:85:41
|
85 | fn stream_data(&self, id: PlainRef, range: Range<usize>) -> Result<Arc<[u8]>> {
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
|
unused variable: `id`:
pdf/src/object/mod.rs#L85
warning: unused variable: `id`
--> pdf/src/object/mod.rs:85:27
|
85 | fn stream_data(&self, id: PlainRef, range: Range<usize>) -> Result<Arc<[u8]>> {
| ^^ help: if this is intentional, prefix it with an underscore: `_id`
|
unused variable: `cloner`:
pdf/src/object/function.rs#L208
warning: unused variable: `cloner`
--> pdf/src/object/function.rs:208:26
|
208 | fn deep_clone(&self, cloner: &mut impl Cloner) -> Result<Self> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloner`
|
unused variable: `update`:
pdf/src/object/function.rs#L182
warning: unused variable: `update`
--> pdf/src/object/function.rs:182:28
|
182 | fn to_primitive(&self, update: &mut impl Updater) -> Result<Primitive> {
| ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
|
= note: `#[warn(unused_variables)]` on by default
|
variable does not need to be mutable:
pdf_derive/src/lib.rs#L766
warning: variable does not need to be mutable
--> pdf_derive/src/lib.rs:766:25
|
766 | let (impl_generics, mut ty_generics, where_clause) = generics.split_for_impl();
| ----^^^^^^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `field`:
pdf_derive/src/lib.rs#L728
warning: unused variable: `field`
--> pdf_derive/src/lib.rs:728:39
|
728 | let other = parts.iter().filter(|(field, attrs, _)| attrs.other).flat_map(|(field, _, _)| field).next();
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
|
unused variable: `f`:
pdf_derive/src/lib.rs#L457
warning: unused variable: `f`
--> pdf_derive/src/lib.rs:457:85
|
457 | let labels: Vec<Ident> = fields.unnamed.iter().enumerate().map(|(i, f)| {
| ^ help: if this is intentional, prefix it with an underscore: `_f`
|
unused variable: `attrs`:
pdf_derive/src/lib.rs#L273
warning: unused variable: `attrs`
--> pdf_derive/src/lib.rs:273:9
|
273 | let attrs = GlobalAttrs::from_ast(ast);
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_attrs`
|
= note: `#[warn(unused_variables)]` on by default
|
unused imports: `punctuated::Punctuated`, `token::Where`:
pdf_derive/src/lib.rs#L99
warning: unused imports: `punctuated::Punctuated`, `token::Where`
--> pdf_derive/src/lib.rs:99:14
|
99 | use syn::{*, punctuated::Punctuated, token::Where};
| ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
`Rect` is ambiguous:
pdf/src/build.rs#L85
warning: `Rect` is ambiguous
--> pdf/src/build.rs:85:31
|
85 | self.media_box = Some(Rect {
| ^^^^ ambiguous name
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
= note: ambiguous because of multiple glob imports of a name in the same module
note: `Rect` could refer to the struct imported here
--> pdf/src/build.rs:16:5
|
16 | use crate::object::*;
| ^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
note: `Rect` could also refer to the struct imported here
--> pdf/src/build.rs:17:5
|
17 | use crate::content::*;
| ^^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
|
`Rect` is ambiguous:
pdf/src/build.rs#L28
warning: `Rect` is ambiguous
--> pdf/src/build.rs:28:26
|
28 | pub trim_box: Option<Rect>,
| ^^^^ ambiguous name
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
= note: ambiguous because of multiple glob imports of a name in the same module
note: `Rect` could refer to the struct imported here
--> pdf/src/build.rs:16:5
|
16 | use crate::object::*;
| ^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
note: `Rect` could also refer to the struct imported here
--> pdf/src/build.rs:17:5
|
17 | use crate::content::*;
| ^^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
|
`Rect` is ambiguous:
pdf/src/build.rs#L27
warning: `Rect` is ambiguous
--> pdf/src/build.rs:27:26
|
27 | pub crop_box: Option<Rect>,
| ^^^^ ambiguous name
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
= note: ambiguous because of multiple glob imports of a name in the same module
note: `Rect` could refer to the struct imported here
--> pdf/src/build.rs:16:5
|
16 | use crate::object::*;
| ^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
note: `Rect` could also refer to the struct imported here
--> pdf/src/build.rs:17:5
|
17 | use crate::content::*;
| ^^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
|
`Rect` is ambiguous:
pdf/src/build.rs#L26
warning: `Rect` is ambiguous
--> pdf/src/build.rs:26:27
|
26 | pub media_box: Option<Rect>,
| ^^^^ ambiguous name
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
= note: ambiguous because of multiple glob imports of a name in the same module
note: `Rect` could refer to the struct imported here
--> pdf/src/build.rs:16:5
|
16 | use crate::object::*;
| ^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
note: `Rect` could also refer to the struct imported here
--> pdf/src/build.rs:17:5
|
17 | use crate::content::*;
| ^^^^^^^^^^^^^^^^^
= help: consider adding an explicit import of `Rect` to disambiguate
= note: `#[warn(ambiguous_glob_imports)]` on by default
|
unused import: `Object`:
pdf/src/any.rs#L5
warning: unused import: `Object`
--> pdf/src/any.rs:5:21
|
5 | use crate::object::{Object};
| ^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
variable does not need to be mutable:
pdf_derive/src/lib.rs#L766
warning: variable does not need to be mutable
--> pdf_derive/src/lib.rs:766:25
|
766 | let (impl_generics, mut ty_generics, where_clause) = generics.split_for_impl();
| ----^^^^^^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `field`:
pdf_derive/src/lib.rs#L728
warning: unused variable: `field`
--> pdf_derive/src/lib.rs:728:39
|
728 | let other = parts.iter().filter(|(field, attrs, _)| attrs.other).flat_map(|(field, _, _)| field).next();
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
|
unused variable: `f`:
pdf_derive/src/lib.rs#L457
warning: unused variable: `f`
--> pdf_derive/src/lib.rs:457:85
|
457 | let labels: Vec<Ident> = fields.unnamed.iter().enumerate().map(|(i, f)| {
| ^ help: if this is intentional, prefix it with an underscore: `_f`
|
unused variable: `attrs`:
pdf_derive/src/lib.rs#L273
warning: unused variable: `attrs`
--> pdf_derive/src/lib.rs:273:9
|
273 | let attrs = GlobalAttrs::from_ast(ast);
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_attrs`
|
= note: `#[warn(unused_variables)]` on by default
|
unused imports: `punctuated::Punctuated`, `token::Where`:
pdf_derive/src/lib.rs#L99
warning: unused imports: `punctuated::Punctuated`, `token::Where`
--> pdf_derive/src/lib.rs:99:14
|
99 | use syn::{*, punctuated::Punctuated, token::Where};
| ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
check-clippy
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|