<commit_before>#[cfg(feature = "image")]
extern crate image;

#[macro_use]
extern crate glium;
#[macro_use]
extern crate lazy_static;
#[macro_use]
extern crate log;

use euclid::{point2, rect, vec2, Point2D, Rect, Size2D, Vector2D};
use std::collections::HashMap;
use std::iter;
use std::mem;

mod atlas;
pub use crate::atlas::Atlas;

mod atlas_cache;
pub use crate::atlas_cache::{AtlasCache, SubImageSpec};

mod backend;
pub use crate::backend::{Backend, KeyEvent};

mod canvas_zoom;
pub use crate::canvas_zoom::CanvasZoom;


mod flick;
pub use crate::flick::{Flick, FLICKS_PER_SECOND};

mod rect_util;
pub use crate::rect_util::RectUtil;

mod scene;
pub use crate::scene::{
    add_sheet, add_tilesheet, add_tilesheet_font, get_frame_duration, get_image, run_app,
    save_screenshot, AppConfig, Evt, Scene, SceneSwitch,
};

mod tilesheet;
pub use crate::tilesheet::tilesheet_bounds;

pub type Color = [f32; 4];

/// Vitral representation for texture handle, consecutive positive integers.
pub type TextureIndex = usize;

#[cfg(feature = "image")]
/// Wrapper for the bytes of a PNG image file.
///
/// This is mostly intended for image data that is included in binaries using `include_bytes!`. It
/// implements an `Into` conversion to `ImageBuffer` that will panic if the included bytes do not
/// resolve as an image file of the specified format.<commit_msg>Export ImageKey from Vitral<commit_after>#[cfg(feature = "image")]
extern crate image;

#[macro_use]
extern crate glium;
#[macro_use]
extern crate lazy_static;
#[macro_use]
extern crate log;

use euclid::{point2, rect, vec2, Point2D, Rect, Size2D, Vector2D};
use std::collections::HashMap;
use std::iter;
use std::mem;

mod atlas;
pub use crate::atlas::Atlas;

mod atlas_cache;
pub use crate::atlas_cache::{AtlasCache, SubImageSpec};

mod backend;
pub use crate::backend::{Backend, KeyEvent};

mod canvas_zoom;
pub use crate::canvas_zoom::CanvasZoom;

mod flick;
pub use crate::flick::{Flick, FLICKS_PER_SECOND};

mod rect_util;
pub use crate::rect_util::RectUtil;

mod scene;
pub use crate::scene::{
    add_sheet, add_tilesheet, add_tilesheet_font, get_frame_duration, get_image, run_app,
    save_screenshot, AppConfig, Evt, ImageKey, Scene, SceneSwitch,
};

mod tilesheet;
pub use crate::tilesheet::tilesheet_bounds;

pub type Color = [f32; 4];

/// Vitral representation for texture handle, consecutive positive integers.
pub type TextureIndex = usize;

#[cfg(feature = "image")]
/// Wrapper for the bytes of a PNG image file.
///
/// This is mostly intended for image data that is included in binaries using `include_bytes!`. It
/// implements an `Into` conversion to `ImageBuffer` that will panic if the included bytes do not
/// resolve as an image file of the specified format.
{'fraction_non_alphanumeric': 0.11749727173517643, 'fraction_numerical': 0.005820298290287377, 'mean_word_length': 5.610576923076923, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1631551', 'n_tokens_mistral': 907, 'n_tokens_neox': 905, 'n_words': 307}