Compare commits

...

2 Commits

Author SHA1 Message Date
5e6d57ab71 Use all features in CI.
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-22 10:43:53 -06:00
f02e263749 feat: Add optional map serialization. 2023-02-22 10:41:49 -06:00
4 changed files with 15 additions and 3 deletions

View File

@ -9,8 +9,8 @@ steps:
commands:
- rustup component add clippy rustfmt
- cargo fmt --check
- cargo test
- cargo clippy
- cargo test --all-features
- cargo clippy --all-features
- name: release
image: rust
pull: always

View File

@ -11,6 +11,7 @@ edition = "2021"
[dependencies]
rand = "0.8"
serde = { version = "1", optional = true, features = ["derive"]}
[package.metadata.release]
publish = false

View File

@ -1,8 +1,12 @@
//! Support function for 2D geometry
//!
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
/// Position on the map
#[derive(Default, PartialEq, Copy, Clone, Debug, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
pub struct Point {
pub x: usize,
pub y: usize,
@ -29,6 +33,7 @@ impl Point {
/// Rectangle region on the map
#[derive(Hash, PartialEq, Eq, Copy, Clone, Debug)]
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
pub struct Rect {
pub x1: usize,
pub x2: usize,

View File

@ -7,10 +7,15 @@
//! specific game.
//!
use super::geometry::{usize_abs, Point, Rect};
use std::fmt;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use crate::geometry::{usize_abs, Point, Rect};
#[derive(PartialEq, Copy, Clone, Debug, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
pub struct Tile {
is_blocked: bool,
index: usize,
@ -30,6 +35,7 @@ pub struct NoData;
/// Map data
#[derive(Default, Clone)]
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
pub struct Map<D: Clone + Default> {
pub tiles: Vec<Tile>,
pub width: usize,