summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLawnCable <git@lawncable.net>2022-04-15 08:37:06 +0200
committerLawnCable <git@lawncable.net>2022-04-15 08:37:06 +0200
commitbbeb30c9817327f8c6fc7e50580f3e5f567dfafe (patch)
treea5d65e02dbc49c70e24d3a675e1b017244427d0e
parent28918b3268d72d013b20bb2b5ba67422bbf7ff43 (diff)
downloadfast-tiled.rs-bbeb30c9817327f8c6fc7e50580f3e5f567dfafe.tar.gz
fast-tiled.rs-bbeb30c9817327f8c6fc7e50580f3e5f567dfafe.tar.bz2
fast-tiled.rs-bbeb30c9817327f8c6fc7e50580f3e5f567dfafe.tar.xz
fast-tiled.rs-bbeb30c9817327f8c6fc7e50580f3e5f567dfafe.zip
do cargo clippy fixes
-rw-r--r--src/lib.rs4
-rw-r--r--src/lowlevel/data.rs4
-rw-r--r--src/lowlevel/image.rs2
-rw-r--r--src/lowlevel/layer_tile.rs2
-rw-r--r--src/lowlevel/macros.rs2
-rw-r--r--src/lowlevel/map.rs91
-rw-r--r--src/lowlevel/property.rs5
-rw-r--r--src/lowlevel/wangset.rs4
-rw-r--r--src/main.rs7
9 files changed, 70 insertions, 51 deletions
diff --git a/src/lib.rs b/src/lib.rs
index df5e266..f8555a4 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1 +1,5 @@
+#![allow(dead_code)]
+#![deny(unsafe_code)]
+#![deny(clippy::panic)]
+#![deny(clippy::panicking_unwrap)]
pub mod lowlevel;
diff --git a/src/lowlevel/data.rs b/src/lowlevel/data.rs
index 59a0b3e..40afa74 100644
--- a/src/lowlevel/data.rs
+++ b/src/lowlevel/data.rs
@@ -2,9 +2,9 @@
/// The encoding used to encode the tile layer data. When used, it can be “base64” and “csv” at the moment.
pub enum Encoding {
/// Plain XML based, in <tile> tags
- XML,
+ Xml,
Base64,
- CSV,
+ Csv,
}
#[derive(Debug, PartialEq)]
/// The compression used to compress the tile layer data.
diff --git a/src/lowlevel/image.rs b/src/lowlevel/image.rs
index 6747e69..7b08bcc 100644
--- a/src/lowlevel/image.rs
+++ b/src/lowlevel/image.rs
@@ -48,7 +48,7 @@ impl Image {
let transparent_color: Option<RGB8> = if let Some(s) = node.attribute("trans") {
{
- let mut c = s.trim_start_matches("#").chars();
+ let mut c = s.trim_start_matches('#').chars();
if let Some(color) = read_color::rgb(&mut c) {
Ok(Some(RGB8 {
r: color[0],
diff --git a/src/lowlevel/layer_tile.rs b/src/lowlevel/layer_tile.rs
index bca5daf..caade1a 100644
--- a/src/lowlevel/layer_tile.rs
+++ b/src/lowlevel/layer_tile.rs
@@ -45,7 +45,7 @@ impl LayerTile {
#[cfg(test)]
mod test_layer_tile {
- use crate::lowlevel::{layer_tile::*};
+ use crate::lowlevel::layer_tile::*;
#[test]
fn test_get_flip() {
diff --git a/src/lowlevel/macros.rs b/src/lowlevel/macros.rs
index 7568161..29c4511 100644
--- a/src/lowlevel/macros.rs
+++ b/src/lowlevel/macros.rs
@@ -1,5 +1,3 @@
-use anyhow::anyhow;
-
#[macro_export]
macro_rules! parse_property_test {
($type:ident, $input:expr, $expected_output:expr) => {{
diff --git a/src/lowlevel/map.rs b/src/lowlevel/map.rs
index 9d0b715..e3e2bfa 100644
--- a/src/lowlevel/map.rs
+++ b/src/lowlevel/map.rs
@@ -1,3 +1,5 @@
+use std::fmt;
+
use crate::{ensure_element, ensure_tag_name, get_attribute};
use anyhow::anyhow;
use rgb::RGBA;
@@ -34,19 +36,23 @@ impl MapOrientation {
pub fn from_xml_map_node(node: &roxmltree::Node) -> anyhow::Result<MapOrientation> {
let orientation = node
.attribute("orientation")
- .ok_or(anyhow!("map orientation missing"))?;
+ .ok_or_else(|| anyhow!("map orientation missing"))?;
match orientation {
"orthogonal" => Ok(MapOrientation::Orthogonal),
"isometric" => Ok(MapOrientation::Isometric),
"staggered" => {
- let stagger_axis = StaggerAxis::from_string(node.attribute("staggeraxis").ok_or(
- anyhow!("map.staggeraxis missing, it is required for orientation=staggered"),
- )?)?;
- let stagger_index =
- StaggerIndex::from_string(node.attribute("staggerindex").ok_or(anyhow!(
- "map.staggerindex missing, it is required for orientation=staggered"
- ))?)?;
+ let stagger_axis =
+ StaggerAxis::from_string(node.attribute("staggeraxis").ok_or_else(|| {
+ anyhow!("map.staggeraxis missing, it is required for orientation=staggered")
+ })?)?;
+ let stagger_index = StaggerIndex::from_string(
+ node.attribute("staggerindex").ok_or_else(|| {
+ anyhow!(
+ "map.staggerindex missing, it is required for orientation=staggered"
+ )
+ })?,
+ )?;
Ok(MapOrientation::Staggered {
stagger_axis,
@@ -54,18 +60,24 @@ impl MapOrientation {
})
}
"hexagonal" => {
- let stagger_axis = StaggerAxis::from_string(node.attribute("staggeraxis").ok_or(
- anyhow!("map.staggeraxis missing, it is required for orientation=hexagonal"),
- )?)?;
- let stagger_index =
- StaggerIndex::from_string(node.attribute("staggerindex").ok_or(anyhow!(
- "map.staggerindex missing, it is required for orientation=hexagonal"
- ))?)?;
+ let stagger_axis =
+ StaggerAxis::from_string(node.attribute("staggeraxis").ok_or_else(|| {
+ anyhow!("map.staggeraxis missing, it is required for orientation=hexagonal")
+ })?)?;
+ let stagger_index = StaggerIndex::from_string(
+ node.attribute("staggerindex").ok_or_else(|| {
+ anyhow!(
+ "map.staggerindex missing, it is required for orientation=hexagonal"
+ )
+ })?,
+ )?;
let hexside_length: i32 = node
.attribute("hexsidelength")
- .ok_or(anyhow!(
- "map.hexsidelength missing, it is required for orientation=hexagonal"
- ))?
+ .ok_or_else(|| {
+ anyhow!(
+ "map.hexsidelength missing, it is required for orientation=hexagonal"
+ )
+ })?
.parse()?;
Ok(MapOrientation::Hexagonal {
@@ -77,13 +89,15 @@ impl MapOrientation {
_ => Err(anyhow!("Unknown MapOrientation: {}", orientation)),
}
}
+}
- pub fn to_string(self) -> String {
+impl fmt::Display for MapOrientation {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
- MapOrientation::Orthogonal => "orthogonal".to_owned(),
- MapOrientation::Isometric => "isometric".to_owned(),
- MapOrientation::Staggered { .. } => "staggered".to_owned(),
- MapOrientation::Hexagonal { .. } => "hexagonal".to_owned(),
+ MapOrientation::Orthogonal => write!(f, "orthogonal"),
+ MapOrientation::Isometric => write!(f, "isometric"),
+ MapOrientation::Staggered { .. } => write!(f, "staggered"),
+ MapOrientation::Hexagonal { .. } => write!(f, "hexagonal"),
}
}
}
@@ -115,13 +129,15 @@ impl MapRenderOrder {
_ => Err(anyhow!("Unknown MapRenderOrder: {}", string)),
}
}
+}
- pub fn to_string(self) -> String {
+impl fmt::Display for MapRenderOrder {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
- MapRenderOrder::RightDown => "right-down".to_owned(),
- MapRenderOrder::RightUp => "right-up".to_owned(),
- MapRenderOrder::LeftDown => "left-down".to_owned(),
- MapRenderOrder::LeftUp => "left-up".to_owned(),
+ MapRenderOrder::RightDown => write!(f, "right-down"),
+ MapRenderOrder::RightUp => write!(f, "right-up"),
+ MapRenderOrder::LeftDown => write!(f, "left-down"),
+ MapRenderOrder::LeftUp => write!(f, "left-up"),
}
}
}
@@ -141,11 +157,13 @@ impl StaggerAxis {
_ => Err(anyhow!("invalid StaggerAxis: {}", string)),
}
}
+}
- pub fn to_string(self) -> String {
+impl fmt::Display for StaggerAxis {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
- StaggerAxis::X => "x".to_owned(),
- StaggerAxis::Y => "y".to_owned(),
+ StaggerAxis::X => write!(f, "x"),
+ StaggerAxis::Y => write!(f, "y"),
}
}
}
@@ -165,11 +183,13 @@ impl StaggerIndex {
_ => Err(anyhow!("invalid StaggerIndex: {}", string)),
}
}
+}
- pub fn to_string(self) -> String {
+impl fmt::Display for StaggerIndex {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
- StaggerIndex::Even => "even".to_owned(),
- StaggerIndex::Odd => "odd".to_owned(),
+ StaggerIndex::Even => write!(f, "even"),
+ StaggerIndex::Odd => write!(f, "odd"),
}
}
}
@@ -240,7 +260,8 @@ impl Map {
let infinite = if let Ok(inf) = get_attribute!(node, "infinite") {
match inf {
"1" => true,
- "0" | _ => false,
+ "0" => false,
+ _ => false,
}
} else {
false
diff --git a/src/lowlevel/property.rs b/src/lowlevel/property.rs
index def204d..bf6d0c8 100644
--- a/src/lowlevel/property.rs
+++ b/src/lowlevel/property.rs
@@ -26,10 +26,7 @@ impl Property {
ensure_tag_name!(node, "property");
let name = get_attribute!(node, "name")?.to_owned();
- let property_type = match node.attribute("type") {
- Some(ty) => ty,
- None => "string",
- };
+ let property_type = node.attribute("type").unwrap_or("string");
// handle the case that 'string' value is stored in element content instead of value atribute
if property_type == "string" {
diff --git a/src/lowlevel/wangset.rs b/src/lowlevel/wangset.rs
index 421ccd0..b774093 100644
--- a/src/lowlevel/wangset.rs
+++ b/src/lowlevel/wangset.rs
@@ -28,7 +28,7 @@ impl WangColor {
let color = {
let mut c = get_attribute!(node, "color")?
- .trim_start_matches("#")
+ .trim_start_matches('#')
.chars();
if let Some(color) = read_color::rgb(&mut c) {
Ok(RGB8 {
@@ -145,7 +145,7 @@ pub struct WangId {
impl WangId {
pub fn from_string(wang_id_string: &str) -> anyhow::Result<WangId> {
- let ids: Vec<&str> = wang_id_string.split(",").collect();
+ let ids: Vec<&str> = wang_id_string.split(',').collect();
if ids.len() != 8 {
return Err(anyhow!("wrong number of elements in wang id"));
}
diff --git a/src/main.rs b/src/main.rs
index 1fab2ec..5a130ad 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,8 @@
-use anyhow::anyhow;
-use rgb::RGBA;
-
+#![allow(dead_code)]
+#![deny(unsafe_code)]
+use std::fs::File;
use std::io::prelude::*;
use std::io::BufReader;
-use std::{fs::File, usize};
mod lowlevel;