Skip to content

Commit 9b12d0c

Browse files
authored
fix: Support the pyo3 crate in all public enums (#270)
1 parent fef7ea8 commit 9b12d0c

File tree

3 files changed

+141
-0
lines changed

3 files changed

+141
-0
lines changed

Cargo.lock

Lines changed: 121 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ features = ["schemars", "serde"]
1515

1616
[dependencies]
1717
enumn = { version = "0.1.6", optional = true }
18+
pyo3 = { version = "0.19", optional = true }
1819
schemars = { version = "0.8.7", optional = true }
1920
serde = { version = "1.0", features = ["derive"], optional = true }
2021

common/src/lib.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// Use of this source code is governed by a BSD-style license that can be
99
// found in the LICENSE.chromium file.
1010

11+
#[cfg(feature = "pyo3")]
12+
use pyo3::pyclass;
1113
#[cfg(feature = "schemars")]
1214
use schemars::{
1315
gen::SchemaGenerator,
@@ -47,6 +49,7 @@ pub use geometry::{Affine, Point, Rect, Size, Vec2};
4749
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
4850
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
4951
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
52+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
5053
#[repr(u8)]
5154
pub enum Role {
5255
Unknown,
@@ -269,6 +272,7 @@ impl Default for Role {
269272
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
270273
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
271274
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
275+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
272276
#[repr(u8)]
273277
pub enum Action {
274278
/// Do the default action for an object, typically this means "click".
@@ -440,6 +444,7 @@ impl JsonSchema for Actions {
440444
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
441445
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
442446
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
447+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
443448
#[repr(u8)]
444449
pub enum Orientation {
445450
/// E.g. most toolbars and separators.
@@ -453,6 +458,7 @@ pub enum Orientation {
453458
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
454459
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
455460
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
461+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
456462
#[repr(u8)]
457463
pub enum NameFrom {
458464
/// E.g. [`aria-label`].
@@ -478,6 +484,7 @@ pub enum NameFrom {
478484
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
479485
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
480486
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
487+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
481488
#[repr(u8)]
482489
pub enum DescriptionFrom {
483490
AriaDescription,
@@ -497,6 +504,7 @@ pub enum DescriptionFrom {
497504
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
498505
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
499506
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
507+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
500508
#[repr(u8)]
501509
pub enum TextDirection {
502510
LeftToRight,
@@ -514,6 +522,7 @@ pub enum TextDirection {
514522
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
515523
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
516524
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
525+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
517526
#[repr(u8)]
518527
pub enum Invalid {
519528
True,
@@ -526,6 +535,7 @@ pub enum Invalid {
526535
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
527536
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
528537
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
538+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
529539
#[repr(u8)]
530540
pub enum CheckedState {
531541
False,
@@ -544,6 +554,7 @@ pub enum CheckedState {
544554
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
545555
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
546556
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
557+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
547558
#[repr(u8)]
548559
pub enum DefaultActionVerb {
549560
Click,
@@ -566,6 +577,7 @@ pub enum DefaultActionVerb {
566577
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
567578
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
568579
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
580+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
569581
#[repr(u8)]
570582
pub enum SortDirection {
571583
Unsorted,
@@ -579,6 +591,7 @@ pub enum SortDirection {
579591
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
580592
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
581593
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
594+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
582595
#[repr(u8)]
583596
pub enum AriaCurrent {
584597
False,
@@ -595,6 +608,7 @@ pub enum AriaCurrent {
595608
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
596609
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
597610
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
611+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
598612
#[repr(u8)]
599613
pub enum Live {
600614
Off,
@@ -607,6 +621,7 @@ pub enum Live {
607621
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
608622
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
609623
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
624+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
610625
#[repr(u8)]
611626
pub enum HasPopup {
612627
True,
@@ -622,6 +637,7 @@ pub enum HasPopup {
622637
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
623638
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
624639
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
640+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
625641
#[repr(u8)]
626642
pub enum ListStyle {
627643
Circle,
@@ -638,6 +654,7 @@ pub enum ListStyle {
638654
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
639655
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
640656
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
657+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
641658
#[repr(u8)]
642659
pub enum TextAlign {
643660
Left,
@@ -651,6 +668,7 @@ pub enum TextAlign {
651668
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
652669
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
653670
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
671+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
654672
#[repr(u8)]
655673
pub enum VerticalOffset {
656674
Subscript,
@@ -662,6 +680,7 @@ pub enum VerticalOffset {
662680
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
663681
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
664682
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
683+
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
665684
#[repr(u8)]
666685
pub enum TextDecoration {
667686
Solid,

0 commit comments

Comments
 (0)