1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use std::marker::PhantomData;

use derive_new::new;
use serde::Serialize;

use crate::utils::renderer::RenderMode;

/// Defines a set of common properties used to describe the environment further.
///
/// Can be dynamically altered and outputted during a state output to describe
/// the contents of the state further.
#[derive(Debug, Clone, Serialize, PartialEq, Eq, Ord, PartialOrd, Copy, new)]
pub struct Metadata<T> {
    /// Defines the render modes supported by the environment.
    pub render_modes: &'static [RenderMode],
    /// Defines the fps used by the internal renderer.
    pub render_fps: u32,
    marker: PhantomData<T>,
}