diff --git a/kurbo/src/axis.rs b/kurbo/src/axis.rs index 758112e0..3c1efc93 100644 --- a/kurbo/src/axis.rs +++ b/kurbo/src/axis.rs @@ -5,6 +5,7 @@ use crate::{Point, Size, Vec2}; /// An axis in the plane. #[derive(Copy, Clone, PartialEq, Eq, Debug)] +#[repr(u8)] pub enum Axis { /// The x axis. Horizontal, diff --git a/kurbo/src/cubicbez.rs b/kurbo/src/cubicbez.rs index 1432f67f..ef3bab6e 100644 --- a/kurbo/src/cubicbez.rs +++ b/kurbo/src/cubicbez.rs @@ -46,6 +46,7 @@ struct ToQuads { /// Classification result for cusp detection. #[derive(Debug)] +#[repr(u8)] pub enum CuspType { /// Cusp is a loop. Loop, diff --git a/kurbo/src/simplify.rs b/kurbo/src/simplify.rs index 9de24b43..21053cbf 100644 --- a/kurbo/src/simplify.rs +++ b/kurbo/src/simplify.rs @@ -64,6 +64,7 @@ pub struct SimplifyOptions { } /// Optimization level for simplification. +#[repr(u8)] pub enum SimplifyOptLevel { /// Subdivide; faster but not as optimized results. Subdivide, diff --git a/kurbo/src/stroke.rs b/kurbo/src/stroke.rs index b13f448a..185758be 100644 --- a/kurbo/src/stroke.rs +++ b/kurbo/src/stroke.rs @@ -19,6 +19,7 @@ use crate::{ #[derive(Copy, Clone, PartialEq, Eq, Debug)] #[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[repr(u8)] pub enum Join { /// A straight line connecting the segments. Bevel, @@ -32,6 +33,7 @@ pub enum Join { #[derive(Copy, Clone, PartialEq, Eq, Debug)] #[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[repr(u8)] pub enum Cap { /// Flat cap. Butt, @@ -76,6 +78,7 @@ pub struct StrokeOpts { /// should set it appropriately. For real time rendering, the appropriate /// value is `Subdivide`. #[derive(Clone, Copy, Debug, Eq, PartialEq)] +#[repr(u8)] pub enum StrokeOptLevel { /// Adaptively subdivide segments in half. Subdivide,