Skip to content

Commit

Permalink
Remove Layer suffix from LayerType variants (#203)
Browse files Browse the repository at this point in the history
* Remove `Layer` suffix from `LayerType` variants

* Pluralize `Tile` & `Object` variants
  • Loading branch information
aleokdev committed Apr 12, 2022
1 parent ce3d213 commit b2c19a0
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 42 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.11.0]
### Changed
- `LayerType` variants have been stripped from the `Layer` suffix.

## [0.10.2]
### Added
- `TileLayer::width` & `TileLayer::height` for ergonomic access of width/height.
Expand Down
8 changes: 4 additions & 4 deletions examples/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ fn main() {
print!("Layer \"{}\":\n\t", layer.name);

match layer.layer_type() {
tiled::LayerType::TileLayer(layer) => match layer {
tiled::LayerType::Tiles(layer) => match layer {
tiled::TileLayer::Finite(data) => println!(
"Finite tile layer with width = {} and height = {}; ID of tile @ (0,0): {}",
data.width(),
Expand All @@ -27,10 +27,10 @@ fn main() {
)
}
},
tiled::LayerType::ObjectLayer(layer) => {
tiled::LayerType::Objects(layer) => {
println!("Object layer with {} objects", layer.objects().len())
}
tiled::LayerType::ImageLayer(layer) => {
tiled::LayerType::Image(layer) => {
println!(
"Image layer with {}",
match &layer.image {
Expand All @@ -40,7 +40,7 @@ fn main() {
}
)
}
tiled::LayerType::GroupLayer(layer) => {
tiled::LayerType::Group(layer) => {
println!("Group layer with {} sublayers", layer.layers().len())
}
}
Expand Down
2 changes: 1 addition & 1 deletion examples/sfml/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ impl Level {
let layers = map
.layers()
.filter_map(|layer| match &layer.layer_type() {
tiled::LayerType::TileLayer(l) => Some(generate_mesh(
tiled::LayerType::Tiles(l) => Some(generate_mesh(
match l {
tiled::TileLayer::Finite(f) => f,
tiled::TileLayer::Infinite(_) => panic!("Infinite maps not supported"),
Expand Down
2 changes: 1 addition & 1 deletion src/image.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ pub struct Image {
/// .unwrap()
/// .layer_type()
/// {
/// LayerType::ImageLayer(layer) => layer,
/// LayerType::Image(layer) => layer,
/// _ => panic!(),
/// };
///
Expand Down
8 changes: 4 additions & 4 deletions src/layers/group.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ impl GroupLayerData {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::TileLayer,
LayerTag::Tiles,
infinite,
map_path,
tilesets,
Expand All @@ -41,7 +41,7 @@ impl GroupLayerData {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::ImageLayer,
LayerTag::Image,
infinite,
map_path,
tilesets,
Expand All @@ -52,7 +52,7 @@ impl GroupLayerData {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::ObjectLayer,
LayerTag::Objects,
infinite,
map_path,
tilesets,
Expand All @@ -63,7 +63,7 @@ impl GroupLayerData {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::GroupLayer,
LayerTag::Group,
infinite,
map_path,
tilesets,
Expand Down
48 changes: 24 additions & 24 deletions src/layers/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,18 @@ pub use group::*;

#[derive(Clone, PartialEq, Debug)]
pub(crate) enum LayerDataType {
TileLayer(TileLayerData),
ObjectLayer(ObjectLayerData),
ImageLayer(ImageLayerData),
GroupLayer(GroupLayerData),
Tiles(TileLayerData),
Objects(ObjectLayerData),
Image(ImageLayerData),
Group(GroupLayerData),
}

#[derive(Clone, Copy)]
pub(crate) enum LayerTag {
TileLayer,
ObjectLayer,
ImageLayer,
GroupLayer,
Tiles,
Objects,
Image,
Group,
}

/// The raw data of a [`Layer`]. Does not include a reference to its parent [`Map`](crate::Map).
Expand Down Expand Up @@ -86,21 +86,21 @@ impl LayerData {
);

let (ty, properties) = match tag {
LayerTag::TileLayer => {
LayerTag::Tiles => {
let (ty, properties) = TileLayerData::new(parser, attrs, infinite, tilesets)?;
(LayerDataType::TileLayer(ty), properties)
(LayerDataType::Tiles(ty), properties)
}
LayerTag::ObjectLayer => {
LayerTag::Objects => {
let (ty, properties) = ObjectLayerData::new(parser, attrs, Some(tilesets))?;
(LayerDataType::ObjectLayer(ty), properties)
(LayerDataType::Objects(ty), properties)
}
LayerTag::ImageLayer => {
LayerTag::Image => {
let (ty, properties) = ImageLayerData::new(parser, map_path)?;
(LayerDataType::ImageLayer(ty), properties)
(LayerDataType::Image(ty), properties)
}
LayerTag::GroupLayer => {
LayerTag::Group => {
let (ty, properties) = GroupLayerData::new(parser, infinite, map_path, tilesets)?;
(LayerDataType::GroupLayer(ty), properties)
(LayerDataType::Group(ty), properties)
}
};

Expand Down Expand Up @@ -137,22 +137,22 @@ impl<'map> Layer<'map> {
#[derive(Debug)]
pub enum LayerType<'map> {
/// A tile layer; Also see [`TileLayer`].
TileLayer(TileLayer<'map>),
Tiles(TileLayer<'map>),
/// An object layer (also called object group); Also see [`ObjectLayer`].
ObjectLayer(ObjectLayer<'map>),
Objects(ObjectLayer<'map>),
/// An image layer; Also see [`ImageLayer`].
ImageLayer(ImageLayer<'map>),
Image(ImageLayer<'map>),
/// A group layer; Also see [`GroupLayer`].
GroupLayer(GroupLayer<'map>),
Group(GroupLayer<'map>),
}

impl<'map> LayerType<'map> {
fn new(map: &'map Map, data: &'map LayerDataType) -> Self {
match data {
LayerDataType::TileLayer(data) => Self::TileLayer(TileLayer::new(map, data)),
LayerDataType::ObjectLayer(data) => Self::ObjectLayer(ObjectLayer::new(map, data)),
LayerDataType::ImageLayer(data) => Self::ImageLayer(ImageLayer::new(map, data)),
LayerDataType::GroupLayer(data) => Self::GroupLayer(GroupLayer::new(map, data)),
LayerDataType::Tiles(data) => Self::Tiles(TileLayer::new(map, data)),
LayerDataType::Objects(data) => Self::Objects(ObjectLayer::new(map, data)),
LayerDataType::Image(data) => Self::Image(ImageLayer::new(map, data)),
LayerDataType::Group(data) => Self::Group(GroupLayer::new(map, data)),
}
}
}
8 changes: 4 additions & 4 deletions src/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ impl Map {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::TileLayer,
LayerTag::Tiles,
infinite,
map_path,
&tilesets,
Expand All @@ -181,7 +181,7 @@ impl Map {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::ImageLayer,
LayerTag::Image,
infinite,
map_path,
&tilesets,
Expand All @@ -192,7 +192,7 @@ impl Map {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::ObjectLayer,
LayerTag::Objects,
infinite,
map_path,
&tilesets,
Expand All @@ -203,7 +203,7 @@ impl Map {
layers.push(LayerData::new(
parser,
attrs,
LayerTag::GroupLayer,
LayerTag::Group,
infinite,
map_path,
&tilesets,
Expand Down
8 changes: 4 additions & 4 deletions tests/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use tiled::{

fn as_tile_layer<'map>(layer: Layer<'map>) -> TileLayer<'map> {
match layer.layer_type() {
LayerType::TileLayer(x) => x,
LayerType::Tiles(x) => x,
_ => panic!("Not a tile layer"),
}
}
Expand All @@ -20,14 +20,14 @@ fn as_finite<'map>(data: TileLayer<'map>) -> FiniteTileLayer<'map> {

fn as_object_layer<'map>(layer: Layer<'map>) -> ObjectLayer<'map> {
match layer.layer_type() {
LayerType::ObjectLayer(x) => x,
LayerType::Objects(x) => x,
_ => panic!("Not an object layer"),
}
}

fn as_group_layer<'map>(layer: Layer<'map>) -> GroupLayer<'map> {
match layer.layer_type() {
LayerType::GroupLayer(x) => x,
LayerType::Group(x) => x,
_ => panic!("Not a group layer"),
}
}
Expand Down Expand Up @@ -161,7 +161,7 @@ fn test_image_layers() {
.unwrap();
assert_eq!(r.layers().len(), 2);
let mut image_layers = r.layers().map(|layer| {
if let LayerType::ImageLayer(img) = layer.layer_type() {
if let LayerType::Image(img) = layer.layer_type() {
(img, layer)
} else {
panic!("Found layer that isn't an image layer")
Expand Down

0 comments on commit b2c19a0

Please sign in to comment.