build: use rust 1.82 and fix clipyy errors (#768)

* build: use rust 1.82 and fix clipyy errors

* refactor: fix clippy errors
main
unvalley 2024-10-30 14:53:26 +09:00 committed by GitHub
parent de071a60dd
commit 69b4c1a4a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
38 changed files with 52 additions and 213 deletions

View File

@ -4,7 +4,7 @@ use crate::xml_builder::*;
use serde::Serialize; use serde::Serialize;
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct Comments { pub struct Comments {
pub(crate) comments: Vec<Comment>, pub(crate) comments: Vec<Comment>,
@ -28,12 +28,6 @@ impl Comments {
} }
} }
impl Default for Comments {
fn default() -> Self {
Self { comments: vec![] }
}
}
impl BuildXML for Comments { impl BuildXML for Comments {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let mut b = XMLBuilder::new().declaration(Some(true)).open_comments(); let mut b = XMLBuilder::new().declaration(Some(true)).open_comments();

View File

@ -5,7 +5,7 @@ use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
// i.e. <w15:commentEx w15:paraId="00000001" w15:paraIdParent="57D1BD7C" w15:done="0"/> // i.e. <w15:commentEx w15:paraId="00000001" w15:paraIdParent="57D1BD7C" w15:done="0"/>
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct CommentsExtended { pub struct CommentsExtended {
pub children: Vec<CommentExtended>, pub children: Vec<CommentExtended>,
@ -21,12 +21,6 @@ impl CommentsExtended {
} }
} }
impl Default for CommentsExtended {
fn default() -> Self {
Self { children: vec![] }
}
}
impl BuildXML for CommentsExtended { impl BuildXML for CommentsExtended {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let mut b = XMLBuilder::new(); let mut b = XMLBuilder::new();

View File

@ -3,7 +3,7 @@ use serde::Serialize;
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct AppProps {} pub struct AppProps {}
@ -13,12 +13,6 @@ impl AppProps {
} }
} }
impl Default for AppProps {
fn default() -> Self {
Self {}
}
}
impl BuildXML for AppProps { impl BuildXML for AppProps {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -3,13 +3,13 @@ use serde::Serialize;
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct CoreProps { pub struct CoreProps {
config: CorePropsConfig, config: CorePropsConfig,
} }
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct CorePropsConfig { pub struct CorePropsConfig {
created: Option<String>, created: Option<String>,
@ -23,30 +23,6 @@ pub struct CorePropsConfig {
title: Option<String>, title: Option<String>,
} }
impl Default for CorePropsConfig {
fn default() -> Self {
Self {
created: None,
creator: None,
description: None,
language: None,
last_modified_by: None,
modified: None,
revision: None,
subject: None,
title: None,
}
}
}
impl Default for CoreProps {
fn default() -> Self {
Self {
config: CorePropsConfig::default(),
}
}
}
impl CoreProps { impl CoreProps {
pub(crate) fn new(config: CorePropsConfig) -> CoreProps { pub(crate) fn new(config: CorePropsConfig) -> CoreProps {
CoreProps { config } CoreProps { config }

View File

@ -96,6 +96,7 @@ mod tests {
#[test] #[test]
fn test_toc_instr() { fn test_toc_instr() {
#[allow(unused_allocation)]
let b = Box::new(InstrText::TOC(InstrToC::new().heading_styles_range(1, 3))).build(); let b = Box::new(InstrText::TOC(InstrToC::new().heading_styles_range(1, 3))).build();
assert_eq!( assert_eq!(
str::from_utf8(&b).unwrap(), str::from_utf8(&b).unwrap(),
@ -105,6 +106,7 @@ mod tests {
#[test] #[test]
fn test_pageref_instr() { fn test_pageref_instr() {
#[allow(unused_allocation)]
let b = Box::new(InstrText::PAGEREF( let b = Box::new(InstrText::PAGEREF(
InstrPAGEREF::new("_Toc90425847").hyperlink(), InstrPAGEREF::new("_Toc90425847").hyperlink(),
)) ))

View File

@ -255,7 +255,7 @@ impl BuildXML for InstrToC {
fn parse_level_range(i: &str) -> Option<(usize, usize)> { fn parse_level_range(i: &str) -> Option<(usize, usize)> {
let r = i.replace("&quot;", "").replace('\"', ""); let r = i.replace("&quot;", "").replace('\"', "");
let r: Vec<&str> = r.split('-').collect(); let r: Vec<&str> = r.split('-').collect();
if let Some(s) = r.get(0) { if let Some(s) = r.first() {
if let Ok(s) = usize::from_str(s) { if let Ok(s) = usize::from_str(s) {
if let Some(e) = r.get(1) { if let Some(e) = r.get(1) {
if let Ok(e) = usize::from_str(e) { if let Ok(e) = usize::from_str(e) {

View File

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize, Serializer};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, Deserialize, PartialEq)] #[derive(Debug, Clone, Deserialize, PartialEq, Default)]
pub struct IsLgl {} pub struct IsLgl {}
impl IsLgl { impl IsLgl {
@ -12,12 +12,6 @@ impl IsLgl {
} }
} }
impl Default for IsLgl {
fn default() -> Self {
IsLgl {}
}
}
impl BuildXML for IsLgl { impl BuildXML for IsLgl {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -52,7 +52,7 @@ impl LineSpacing {
} }
pub fn line(mut self, line: i32) -> Self { pub fn line(mut self, line: i32) -> Self {
self.line = Some(line as i32); self.line = Some(line);
self self
} }
} }

View File

@ -1,10 +1,7 @@
// use super::*; use crate::documents::BuildXML;
use serde::Serialize; use serde::Serialize;
use crate::documents::BuildXML; #[derive(Debug, Clone, Serialize, PartialEq, Default)]
// use crate::xml_builder::*;
#[derive(Debug, Clone, Serialize, PartialEq)]
pub struct McFallback {} pub struct McFallback {}
impl McFallback { impl McFallback {
@ -13,12 +10,6 @@ impl McFallback {
} }
} }
impl Default for McFallback {
fn default() -> Self {
McFallback {}
}
}
impl BuildXML for McFallback { impl BuildXML for McFallback {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
// Ignore for now // Ignore for now

View File

@ -207,7 +207,6 @@ pub use numbering::*;
pub use numbering_id::*; pub use numbering_id::*;
pub use numbering_property::*; pub use numbering_property::*;
pub use outline_lvl::*; pub use outline_lvl::*;
pub use page_margin::*;
pub use page_num::*; pub use page_num::*;
pub use page_num_type::*; pub use page_num_type::*;
pub use page_size::*; pub use page_size::*;

View File

@ -5,21 +5,12 @@ use super::{IndentLevel, NumberingId};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, PartialEq)] #[derive(Debug, Clone, PartialEq, Default)]
pub struct NumberingProperty { pub struct NumberingProperty {
pub id: Option<NumberingId>, pub id: Option<NumberingId>,
pub level: Option<IndentLevel>, pub level: Option<IndentLevel>,
} }
impl Default for NumberingProperty {
fn default() -> Self {
NumberingProperty {
id: None,
level: None,
}
}
}
impl NumberingProperty { impl NumberingProperty {
pub fn new() -> NumberingProperty { pub fn new() -> NumberingProperty {
Default::default() Default::default()

View File

@ -7,6 +7,7 @@ use crate::xml_builder::*;
// application. If this element is set, then this style has been designated as being particularly important for the // application. If this element is set, then this style has been designated as being particularly important for the
// current document, and this information can be used by an application in any means desired. [Note: This setting // current document, and this information can be used by an application in any means desired. [Note: This setting
// 637ECMA-376 Part 1 does not imply any behavior for the style, only that the style is of particular significance for this document. end note] // 637ECMA-376 Part 1 does not imply any behavior for the style, only that the style is of particular significance for this document. end note]
#[derive(Default)]
pub struct QFormat {} pub struct QFormat {}
impl QFormat { impl QFormat {
@ -15,11 +16,6 @@ impl QFormat {
} }
} }
impl Default for QFormat {
fn default() -> Self {
Self {}
}
}
impl BuildXML for QFormat { impl BuildXML for QFormat {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {

View File

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize, Serializer};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, Deserialize, PartialEq)] #[derive(Debug, Clone, Deserialize, PartialEq, Default)]
pub struct SpecVanish {} pub struct SpecVanish {}
impl SpecVanish { impl SpecVanish {
@ -12,12 +12,6 @@ impl SpecVanish {
} }
} }
impl Default for SpecVanish {
fn default() -> Self {
SpecVanish {}
}
}
impl BuildXML for SpecVanish { impl BuildXML for SpecVanish {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -3,7 +3,7 @@ use serde::{Serialize, Serializer};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, PartialEq)] #[derive(Debug, Clone, PartialEq, Default)]
pub struct Start { pub struct Start {
val: usize, val: usize,
} }
@ -14,12 +14,6 @@ impl Start {
} }
} }
impl Default for Start {
fn default() -> Self {
Start { val: 0 }
}
}
impl BuildXML for Start { impl BuildXML for Start {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -5,7 +5,7 @@ use serde::Serialize;
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, Serialize, PartialEq)] #[derive(Debug, Clone, Serialize, PartialEq, Default)]
pub struct TextBoxContent { pub struct TextBoxContent {
pub children: Vec<TextBoxContentChild>, pub children: Vec<TextBoxContentChild>,
pub has_numbering: bool, pub has_numbering: bool,
@ -62,15 +62,6 @@ impl TextBoxContent {
} }
} }
impl Default for TextBoxContent {
fn default() -> Self {
TextBoxContent {
children: vec![],
has_numbering: false,
}
}
}
impl BuildXML for TextBoxContent { impl BuildXML for TextBoxContent {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize, Serializer};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, Deserialize, PartialEq)] #[derive(Debug, Clone, Deserialize, PartialEq, Default)]
pub struct Vanish {} pub struct Vanish {}
impl Vanish { impl Vanish {
@ -12,12 +12,6 @@ impl Vanish {
} }
} }
impl Default for Vanish {
fn default() -> Self {
Vanish {}
}
}
impl BuildXML for Vanish { impl BuildXML for Vanish {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -4,7 +4,7 @@ use serde::Serialize;
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, Serialize, PartialEq)] #[derive(Debug, Clone, Serialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct WpAnchor { pub struct WpAnchor {
pub children: Vec<AGraphic>, pub children: Vec<AGraphic>,
@ -32,12 +32,6 @@ impl WpAnchor {
} }
} }
impl Default for WpAnchor {
fn default() -> Self {
WpAnchor { children: vec![] }
}
}
impl BuildXML for WpAnchor { impl BuildXML for WpAnchor {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -5,7 +5,7 @@ use serde::Serialize;
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, Serialize, PartialEq)] #[derive(Debug, Clone, Serialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct WpsShape { pub struct WpsShape {
children: Vec<WpsShapeChild>, children: Vec<WpsShapeChild>,
@ -43,12 +43,6 @@ impl WpsShape {
} }
} }
impl Default for WpsShape {
fn default() -> Self {
WpsShape { children: vec![] }
}
}
impl BuildXML for WpsShape { impl BuildXML for WpsShape {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -4,7 +4,7 @@ use serde::Serialize;
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Debug, Clone, Serialize, PartialEq)] #[derive(Debug, Clone, Serialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct WpsTextBox { pub struct WpsTextBox {
pub children: Vec<TextBoxContent>, pub children: Vec<TextBoxContent>,
@ -25,15 +25,6 @@ impl WpsTextBox {
} }
} }
impl Default for WpsTextBox {
fn default() -> Self {
WpsTextBox {
children: vec![],
has_numbering: false,
}
}
}
impl BuildXML for WpsTextBox { impl BuildXML for WpsTextBox {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -5,7 +5,7 @@ use crate::xml_builder::*;
use serde::Serialize; use serde::Serialize;
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct FontTable {} pub struct FontTable {}
@ -15,12 +15,6 @@ impl FontTable {
} }
} }
impl Default for FontTable {
fn default() -> Self {
Self {}
}
}
impl BuildXML for FontTable { impl BuildXML for FontTable {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -96,7 +96,7 @@ impl ser::Serialize for Image {
where where
S: ser::Serializer, S: ser::Serializer,
{ {
let base64 = base64::display::Base64Display::with_config(&*self.0, base64::STANDARD); let base64 = base64::display::Base64Display::with_config(&self.0, base64::STANDARD);
serializer.collect_str(&base64) serializer.collect_str(&base64)
} }
} }
@ -106,7 +106,7 @@ impl ser::Serialize for Png {
where where
S: ser::Serializer, S: ser::Serializer,
{ {
let base64 = base64::display::Base64Display::with_config(&*self.0, base64::STANDARD); let base64 = base64::display::Base64Display::with_config(&self.0, base64::STANDARD);
serializer.collect_str(&base64) serializer.collect_str(&base64)
} }
} }

View File

@ -5,7 +5,7 @@ use crate::xml_builder::*;
use serde::Serialize; use serde::Serialize;
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct Numberings { pub struct Numberings {
pub abstract_nums: Vec<AbstractNumbering>, pub abstract_nums: Vec<AbstractNumbering>,
@ -28,15 +28,6 @@ impl Numberings {
} }
} }
impl Default for Numberings {
fn default() -> Self {
Self {
abstract_nums: vec![],
numberings: vec![],
}
}
}
impl BuildXML for Numberings { impl BuildXML for Numberings {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let mut b = XMLBuilder::new().declaration(Some(true)).open_numbering(); let mut b = XMLBuilder::new().declaration(Some(true)).open_numbering();

View File

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] #[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Default)]
pub struct Rels { pub struct Rels {
pub rels: Vec<(String, String, String)>, pub rels: Vec<(String, String, String)>,
} }
@ -61,12 +61,6 @@ impl Rels {
} }
} }
impl Default for Rels {
fn default() -> Self {
Rels { rels: Vec::new() }
}
}
impl BuildXML for Rels { impl BuildXML for Rels {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Copy)] #[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Copy, Default)]
pub struct Taskpanes {} pub struct Taskpanes {}
impl Taskpanes { impl Taskpanes {
@ -12,12 +12,6 @@ impl Taskpanes {
} }
} }
impl Default for Taskpanes {
fn default() -> Self {
Self {}
}
}
impl BuildXML for Taskpanes { impl BuildXML for Taskpanes {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
use crate::documents::BuildXML; use crate::documents::BuildXML;
use crate::xml_builder::*; use crate::xml_builder::*;
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] #[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Default)]
pub struct TaskpanesRels { pub struct TaskpanesRels {
pub rels: Vec<(String, String, String)>, pub rels: Vec<(String, String, String)>,
} }
@ -28,12 +28,6 @@ impl TaskpanesRels {
} }
} }
impl Default for TaskpanesRels {
fn default() -> Self {
TaskpanesRels { rels: Vec::new() }
}
}
impl BuildXML for TaskpanesRels { impl BuildXML for TaskpanesRels {
fn build(&self) -> Vec<u8> { fn build(&self) -> Vec<u8> {
let b = XMLBuilder::new(); let b = XMLBuilder::new();

View File

@ -2,7 +2,7 @@ use serde::Serialize;
use super::*; use super::*;
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct WebSettings { pub struct WebSettings {
pub divs: Vec<Div>, pub divs: Vec<Div>,
@ -13,9 +13,3 @@ impl WebSettings {
Default::default() Default::default()
} }
} }
impl Default for WebSettings {
fn default() -> Self {
Self { divs: vec![] }
}
}

View File

@ -1,4 +1,5 @@
mod documents; mod documents;
#[allow(hidden_glob_reexports)] // should rename?
mod errors; mod errors;
mod escape; mod escape;
mod reader; mod reader;

View File

@ -5,7 +5,7 @@ pub fn is_false(v: &str) -> bool {
} }
pub fn read_bool(attrs: &[OwnedAttribute]) -> bool { pub fn read_bool(attrs: &[OwnedAttribute]) -> bool {
if let Some(v) = attrs.get(0) { if let Some(v) = attrs.first() {
if is_false(&v.value) { if is_false(&v.value) {
return false; return false;
} }

View File

@ -76,7 +76,6 @@ pub use attributes::*;
pub use document_rels::*; pub use document_rels::*;
pub use errors::ReaderError; pub use errors::ReaderError;
pub use from_xml::*; pub use from_xml::*;
pub use mc_fallback::*;
pub use read_zip::*; pub use read_zip::*;
pub use xml_element::*; pub use xml_element::*;
use zip::ZipArchive; use zip::ZipArchive;
@ -222,7 +221,7 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
// Read commentsExtended // Read commentsExtended
let comments_extended_path = rels.find_target_path(COMMENTS_EXTENDED_TYPE); let comments_extended_path = rels.find_target_path(COMMENTS_EXTENDED_TYPE);
let comments_extended = if let Some(comments_extended_path) = comments_extended_path { let comments_extended = if let Some(comments_extended_path) = comments_extended_path {
if let Some((_, comments_extended_path, ..)) = comments_extended_path.get(0) { if let Some((_, comments_extended_path, ..)) = comments_extended_path.first() {
let data = read_zip( let data = read_zip(
&mut archive, &mut archive,
comments_extended_path comments_extended_path
@ -244,7 +243,7 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
// Read comments // Read comments
let comments_path = rels.find_target_path(COMMENTS_TYPE); let comments_path = rels.find_target_path(COMMENTS_TYPE);
let comments = if let Some(paths) = comments_path { let comments = if let Some(paths) = comments_path {
if let Some((_, comments_path, ..)) = paths.get(0) { if let Some((_, comments_path, ..)) = paths.first() {
let data = read_zip( let data = read_zip(
&mut archive, &mut archive,
comments_path.to_str().expect("should have comments."), comments_path.to_str().expect("should have comments."),
@ -399,7 +398,7 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
// Read styles // Read styles
let style_path = rels.find_target_path(STYLE_RELATIONSHIP_TYPE); let style_path = rels.find_target_path(STYLE_RELATIONSHIP_TYPE);
if let Some(paths) = style_path { if let Some(paths) = style_path {
if let Some((_, style_path, ..)) = paths.get(0) { if let Some((_, style_path, ..)) = paths.first() {
let data = read_zip( let data = read_zip(
&mut archive, &mut archive,
style_path.to_str().expect("should have styles"), style_path.to_str().expect("should have styles"),
@ -412,7 +411,7 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
// Read numberings // Read numberings
let num_path = rels.find_target_path(NUMBERING_RELATIONSHIP_TYPE); let num_path = rels.find_target_path(NUMBERING_RELATIONSHIP_TYPE);
if let Some(paths) = num_path { if let Some(paths) = num_path {
if let Some((_, num_path, ..)) = paths.get(0) { if let Some((_, num_path, ..)) = paths.first() {
let data = read_zip( let data = read_zip(
&mut archive, &mut archive,
num_path.to_str().expect("should have numberings"), num_path.to_str().expect("should have numberings"),
@ -425,7 +424,7 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
// Read settings // Read settings
let settings_path = rels.find_target_path(SETTINGS_TYPE); let settings_path = rels.find_target_path(SETTINGS_TYPE);
if let Some(paths) = settings_path { if let Some(paths) = settings_path {
if let Some((_, settings_path, ..)) = paths.get(0) { if let Some((_, settings_path, ..)) = paths.first() {
let data = read_zip( let data = read_zip(
&mut archive, &mut archive,
settings_path.to_str().expect("should have settings"), settings_path.to_str().expect("should have settings"),
@ -438,7 +437,7 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
// Read web settings // Read web settings
let web_settings_path = rels.find_target_path(WEB_SETTINGS_TYPE); let web_settings_path = rels.find_target_path(WEB_SETTINGS_TYPE);
if let Some(paths) = web_settings_path { if let Some(paths) = web_settings_path {
if let Some((_, web_settings_path, ..)) = paths.get(0) { if let Some((_, web_settings_path, ..)) = paths.first() {
let data = read_zip( let data = read_zip(
&mut archive, &mut archive,
web_settings_path web_settings_path

View File

@ -91,7 +91,7 @@ impl ElementReader for Run {
XMLElement::Text => text_state = TextState::Text, XMLElement::Text => text_state = TextState::Text,
XMLElement::DeleteText => text_state = TextState::Delete, XMLElement::DeleteText => text_state = TextState::Delete,
XMLElement::Break => { XMLElement::Break => {
if let Some(a) = &attributes.get(0) { if let Some(a) = attributes.first() {
run = run.add_break(BreakType::from_str(&a.value)?) run = run.add_break(BreakType::from_str(&a.value)?)
} else { } else {
run = run.add_break(BreakType::TextWrapping) run = run.add_break(BreakType::TextWrapping)

View File

@ -113,7 +113,7 @@ impl ElementReader for RunProperty {
rp = rp.fonts(f); rp = rp.fonts(f);
} }
} }
XMLElement::Underline => rp = rp.underline(&attributes[0].value.clone()), XMLElement::Underline => rp = rp.underline(attributes[0].value.clone()),
XMLElement::Italic => { XMLElement::Italic => {
if !read_bool(&attributes) { if !read_bool(&attributes) {
rp = rp.disable_italic(); rp = rp.disable_italic();

View File

@ -26,7 +26,7 @@ impl FromXML for Settings {
// Ignore w14:val // Ignore w14:val
if local_name == "val" && prefix == "w15" { if local_name == "val" && prefix == "w15" {
settings = settings.doc_id( settings = settings.doc_id(
&a.value.to_owned().replace("{", "").replace("}", ""), a.value.to_owned().replace("{", "").replace("}", ""),
); );
} }
} }

View File

@ -33,7 +33,7 @@ impl ElementReader for Style {
let e = XMLElement::from_str(&name.local_name).unwrap(); let e = XMLElement::from_str(&name.local_name).unwrap();
match e { match e {
XMLElement::Name => { XMLElement::Name => {
style = style.name(&attributes[0].value.clone()); style = style.name(attributes[0].value.clone());
continue; continue;
} }
XMLElement::BasedOn => { XMLElement::BasedOn => {

View File

@ -34,12 +34,12 @@ impl ElementReader for TableCellProperty {
property = property.width(w, width_type); property = property.width(w, width_type);
} }
XMLElement::TableGridSpan => { XMLElement::TableGridSpan => {
if let Some(a) = &attributes.get(0) { if let Some(a) = attributes.first() {
property = property.grid_span(usize::from_str(&a.value)?) property = property.grid_span(usize::from_str(&a.value)?)
} }
} }
XMLElement::TableVMerge => { XMLElement::TableVMerge => {
if let Some(a) = &attributes.get(0) { if let Some(a) = attributes.first() {
property = property.vertical_merge(VMergeType::from_str(&a.value)?); property = property.vertical_merge(VMergeType::from_str(&a.value)?);
} else { } else {
// Treat as a continue without attribute // Treat as a continue without attribute
@ -47,7 +47,7 @@ impl ElementReader for TableCellProperty {
} }
} }
XMLElement::VAlign => { XMLElement::VAlign => {
if let Some(a) = &attributes.get(0) { if let Some(a) = attributes.first() {
property = property.vertical_align(VAlignType::from_str(&a.value)?); property = property.vertical_align(VAlignType::from_str(&a.value)?);
} }
} }
@ -57,7 +57,7 @@ impl ElementReader for TableCellProperty {
} }
} }
XMLElement::TextDirection => { XMLElement::TextDirection => {
if let Some(a) = &attributes.get(0) { if let Some(a) = attributes.first() {
if let Ok(v) = TextDirectionType::from_str(&a.value) { if let Ok(v) = TextDirectionType::from_str(&a.value) {
property = property.text_direction(v); property = property.text_direction(v);
} }

View File

@ -573,7 +573,7 @@ macro_rules! closed_border_el {
macro_rules! closed_paragraph_border_el { macro_rules! closed_paragraph_border_el {
($name: ident, $ el_name: expr) => { ($name: ident, $ el_name: expr) => {
pub(crate) fn $name<'a>(mut self, val: &str, space: &str, size: &str, color: &str) -> Self { pub(crate) fn $name(mut self, val: &str, space: &str, size: &str, color: &str) -> Self {
self.writer self.writer
.write( .write(
XmlEvent::start_element($el_name) XmlEvent::start_element($el_name)

View File

@ -27,8 +27,6 @@ use std::str;
use xml::common::XmlVersion; use xml::common::XmlVersion;
use xml::writer::{EmitterConfig, EventWriter, XmlEvent}; use xml::writer::{EmitterConfig, EventWriter, XmlEvent};
pub use elements::*;
pub struct XMLBuilder { pub struct XMLBuilder {
writer: EventWriter<Vec<u8>>, writer: EventWriter<Vec<u8>>,
} }

View File

@ -69,14 +69,13 @@ pub struct XmlData {
// Get the attributes as a string // Get the attributes as a string
fn attributes_to_string(attributes: &[(String, String)]) -> String { fn attributes_to_string(attributes: &[(String, String)]) -> String {
attributes attributes.iter().fold(String::new(), |acc, (k, v)| {
.iter()
.fold(String::new(), |acc, &(ref k, ref v)| {
format!("{} {}=\"{}\"", acc, k, v) format!("{} {}=\"{}\"", acc, k, v)
}) })
} }
// Format the XML data as a string // Format the XML data as a string
#[allow(clippy::only_used_in_recursion)]
fn format(data: &XmlData, depth: usize) -> String { fn format(data: &XmlData, depth: usize) -> String {
let sub = if data.children.is_empty() { let sub = if data.children.is_empty() {
String::new() String::new()
@ -88,8 +87,6 @@ fn format(data: &XmlData, depth: usize) -> String {
sub sub
}; };
// let indt = indent(depth);
let fmt_data = if let Some(ref d) = data.data { let fmt_data = if let Some(ref d) = data.data {
format!("\n{}", d) format!("\n{}", d)
} else { } else {

View File

@ -1 +1 @@
1.73 1.82