mplusfonts-macros 0.3.4

Procedural macros re-exported in the mplusfonts crate
Documentation
pub mod parts;
pub mod renders;
pub mod with_arc;
pub mod with_double;
pub mod with_heavy;
pub mod with_single;

use swash::zeno::Vector;

use super::{Chain, ChainList, GlyphMetrics, Image, ImageCluster, Matrix, Points};
use super::{offset_table, render_image, trim_image};

macro_rules! def_unicode_char {
    (
        $(
            $fn_ident:ident,
        )*
    ) => {
        $(
            pub fn $fn_ident(glyph_metrics: &GlyphMetrics, offset: Vector) -> ImageCluster {
                let offset = offset_table(offset);

                Vec::from([renders::$fn_ident(glyph_metrics, offset)])
            }
        )*
    }
}

def_unicode_char! {
    light_horizontal,
    heavy_horizontal,
    light_vertical,
    heavy_vertical,

    light_double_dash_horizontal,
    heavy_double_dash_horizontal,
    light_double_dash_vertical,
    heavy_double_dash_vertical,

    light_triple_dash_horizontal,
    heavy_triple_dash_horizontal,
    light_triple_dash_vertical,
    heavy_triple_dash_vertical,

    light_quadruple_dash_horizontal,
    heavy_quadruple_dash_horizontal,
    light_quadruple_dash_vertical,
    heavy_quadruple_dash_vertical,

    light_left,
    heavy_left,
    light_up,
    heavy_up,

    light_right,
    heavy_right,
    light_down,
    heavy_down,

    light_down_and_right,
    heavy_down_and_right,
    light_down_and_left,
    heavy_down_and_left,

    light_up_and_right,
    heavy_up_and_right,
    light_up_and_left,
    heavy_up_and_left,
}