drawing 0.3.3

API for 2D graphics library
Documentation
use crate::backend::Device;
use crate::font::Font;
use std::collections::HashMap;

pub struct Resources<D: Device, F: Font<D>> {
    fonts: HashMap<String, F>,
    textures: HashMap<i32, D::Texture>,
    last_texture_id: i32,
}

impl<D: Device, F: Font<D>> Default for Resources<D, F> {
    fn default() -> Self {
        Self::new()
    }
}

impl<D: Device, F: Font<D>> Resources<D, F> {
    pub fn new() -> Resources<D, F> {
        Resources {
            fonts: HashMap::new(),
            textures: HashMap::new(),
            last_texture_id: 0,
        }
    }

    pub fn fonts_mut(&mut self) -> &mut HashMap<String, F> {
        &mut self.fonts
    }

    pub fn get_next_texture_id(&mut self) -> i32 {
        self.last_texture_id += 1;
        self.last_texture_id
    }

    pub fn textures(&self) -> &HashMap<i32, D::Texture> {
        &self.textures
    }

    pub fn textures_mut(&mut self) -> &mut HashMap<i32, D::Texture> {
        &mut self.textures
    }
}