Skip to content

Commit 54e82f6

Browse files
authored
fix: Set appropriate representations on all public types that will be exposed via FFI
1 parent 3b3bd1b commit 54e82f6

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

common/src/lib.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ pub use geometry::{Affine, Point, Rect, Size, Vec2};
4646
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
4747
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
4848
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
49+
#[repr(u8)]
4950
pub enum Role {
5051
Unknown,
5152
InlineTextBox,
@@ -436,6 +437,7 @@ impl JsonSchema for Actions {
436437
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
437438
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
438439
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
440+
#[repr(u8)]
439441
pub enum Orientation {
440442
/// E.g. most toolbars and separators.
441443
Horizontal,
@@ -447,6 +449,7 @@ pub enum Orientation {
447449
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
448450
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
449451
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
452+
#[repr(u8)]
450453
pub enum NameFrom {
451454
/// E.g. [`aria-label`].
452455
///
@@ -470,6 +473,7 @@ pub enum NameFrom {
470473
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
471474
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
472475
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
476+
#[repr(u8)]
473477
pub enum DescriptionFrom {
474478
AriaDescription,
475479
/// HTML-AAM 5.2.2
@@ -487,6 +491,7 @@ pub enum DescriptionFrom {
487491
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
488492
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
489493
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
494+
#[repr(u8)]
490495
pub enum TextDirection {
491496
LeftToRight,
492497
RightToLeft,
@@ -502,6 +507,7 @@ pub enum TextDirection {
502507
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
503508
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
504509
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
510+
#[repr(u8)]
505511
pub enum Invalid {
506512
True,
507513
Grammar,
@@ -512,6 +518,7 @@ pub enum Invalid {
512518
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
513519
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
514520
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
521+
#[repr(u8)]
515522
pub enum CheckedState {
516523
False,
517524
True,
@@ -528,6 +535,7 @@ pub enum CheckedState {
528535
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
529536
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
530537
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
538+
#[repr(u8)]
531539
pub enum DefaultActionVerb {
532540
Click,
533541
Focus,
@@ -548,6 +556,7 @@ pub enum DefaultActionVerb {
548556
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
549557
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
550558
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
559+
#[repr(u8)]
551560
pub enum SortDirection {
552561
Unsorted,
553562
Ascending,
@@ -559,6 +568,7 @@ pub enum SortDirection {
559568
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
560569
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
561570
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
571+
#[repr(u8)]
562572
pub enum AriaCurrent {
563573
False,
564574
True,
@@ -573,6 +583,7 @@ pub enum AriaCurrent {
573583
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
574584
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
575585
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
586+
#[repr(u8)]
576587
pub enum Live {
577588
Off,
578589
Polite,
@@ -583,6 +594,7 @@ pub enum Live {
583594
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
584595
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
585596
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
597+
#[repr(u8)]
586598
pub enum HasPopup {
587599
True,
588600
Menu,
@@ -596,6 +608,7 @@ pub enum HasPopup {
596608
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
597609
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
598610
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
611+
#[repr(u8)]
599612
pub enum ListStyle {
600613
Circle,
601614
Disc,
@@ -610,6 +623,7 @@ pub enum ListStyle {
610623
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
611624
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
612625
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
626+
#[repr(u8)]
613627
pub enum TextAlign {
614628
Left,
615629
Right,
@@ -621,6 +635,7 @@ pub enum TextAlign {
621635
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
622636
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
623637
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
638+
#[repr(u8)]
624639
pub enum VerticalOffset {
625640
Subscript,
626641
Superscript,
@@ -630,6 +645,7 @@ pub enum VerticalOffset {
630645
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
631646
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
632647
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
648+
#[repr(u8)]
633649
pub enum TextDecoration {
634650
Solid,
635651
Dotted,
@@ -646,6 +662,7 @@ pub type NodeIdContent = NonZeroU128;
646662
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
647663
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
648664
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
665+
#[repr(transparent)]
649666
pub struct NodeId(pub NodeIdContent);
650667

651668
impl From<NonZeroU64> for NodeId {
@@ -2369,6 +2386,7 @@ impl<T: FnOnce() -> TreeUpdate> From<T> for TreeUpdate {
23692386
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
23702387
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
23712388
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
2389+
#[repr(C)]
23722390
pub enum ActionData {
23732391
CustomAction(i32),
23742392
Value(Box<str>),

0 commit comments

Comments
 (0)