#![no_std]
#![cfg_attr(test, no_main)]
#![cfg_attr(test, feature(custom_test_frameworks))]
#![cfg_attr(test, reexport_test_harness_main = "test_main")]
#![cfg_attr(test, test_runner(agb::test_runner::test_runner))]
pub mod multi_typewriter;
pub mod renderer;
pub mod typewriter;
extern crate alloc;
pub mod prelude {
pub use crate::TextAlign;
pub use crate::TextOverflow;
pub use crate::multi_typewriter::*;
pub use crate::renderer::*;
pub use crate::typewriter::*;
pub use gba_agb_font_eb::prelude::*;
}
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct TextFormat {
pub overflow: TextOverflow,
pub align: TextAlign,
pub clear: (u16, u16),
}
impl TextFormat {
pub const fn new(overflow: TextOverflow, align: TextAlign, clear: (u16, u16)) -> Self {
Self {
overflow,
align,
clear,
}
}
}
impl Default for TextFormat {
#[inline]
fn default() -> Self {
Self {
clear: (0, 0),
align: TextAlign::default(),
overflow: TextOverflow::default(),
}
}
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Default)]
pub enum TextOverflow {
#[default]
Nothing,
Cutoff(u16),
Wrap(u16, bool),
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Default)]
pub enum TextAlign {
#[default]
Left,
Center(u16),
Right(u16),
}