mirx 0.43.0

MIRX binary image format — flat & chunk-based container for ahead-of-time UI assets
Documentation
use alloc::borrow::Cow;

use crate::types::{Color, Fixed, Point, Transform};

#[derive(Clone, Debug, PartialEq)]
pub enum Paint {
    Color(Color),
    LinearGradient(LinearGradient),
    RadialGradient(RadialGradient),
}

#[derive(Clone, Debug, PartialEq)]
pub struct LinearGradient {
    pub start: Point,
    pub end: Point,
    pub stops: Cow<'static, [GradientStop]>,
    pub spread: SpreadMode,
    pub units: GradientUnits,
    pub transform: Transform,
}

#[derive(Clone, Debug, PartialEq)]
pub struct RadialGradient {
    pub center: Point,
    pub radius: Fixed,
    pub focal: Point,
    pub focal_radius: Fixed,
    pub stops: Cow<'static, [GradientStop]>,
    pub spread: SpreadMode,
    pub units: GradientUnits,
    pub transform: Transform,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct GradientStop {
    pub offset: Fixed,
    pub color: Color,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum SpreadMode {
    Pad,
    Reflect,
    Repeat,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum GradientUnits {
    UserSpaceOnUse,
    ObjectBoundingBox,
}