Skip to content

Commit

Permalink
fix: Support the pyo3 crate in all public enums (#270)
Browse files Browse the repository at this point in the history
  • Loading branch information
DataTriny authored Aug 12, 2023
1 parent fef7ea8 commit 9b12d0c
Show file tree
Hide file tree
Showing 3 changed files with 141 additions and 0 deletions.
121 changes: 121 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ features = ["schemars", "serde"]

[dependencies]
enumn = { version = "0.1.6", optional = true }
pyo3 = { version = "0.19", optional = true }
schemars = { version = "0.8.7", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }

Expand Down
19 changes: 19 additions & 0 deletions common/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE.chromium file.

#[cfg(feature = "pyo3")]
use pyo3::pyclass;
#[cfg(feature = "schemars")]
use schemars::{
gen::SchemaGenerator,
Expand Down Expand Up @@ -47,6 +49,7 @@ pub use geometry::{Affine, Point, Rect, Size, Vec2};
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum Role {
Unknown,
Expand Down Expand Up @@ -269,6 +272,7 @@ impl Default for Role {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum Action {
/// Do the default action for an object, typically this means "click".
Expand Down Expand Up @@ -440,6 +444,7 @@ impl JsonSchema for Actions {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum Orientation {
/// E.g. most toolbars and separators.
Expand All @@ -453,6 +458,7 @@ pub enum Orientation {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum NameFrom {
/// E.g. [`aria-label`].
Expand All @@ -478,6 +484,7 @@ pub enum NameFrom {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum DescriptionFrom {
AriaDescription,
Expand All @@ -497,6 +504,7 @@ pub enum DescriptionFrom {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum TextDirection {
LeftToRight,
Expand All @@ -514,6 +522,7 @@ pub enum TextDirection {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum Invalid {
True,
Expand All @@ -526,6 +535,7 @@ pub enum Invalid {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum CheckedState {
False,
Expand All @@ -544,6 +554,7 @@ pub enum CheckedState {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum DefaultActionVerb {
Click,
Expand All @@ -566,6 +577,7 @@ pub enum DefaultActionVerb {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum SortDirection {
Unsorted,
Expand All @@ -579,6 +591,7 @@ pub enum SortDirection {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum AriaCurrent {
False,
Expand All @@ -595,6 +608,7 @@ pub enum AriaCurrent {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum Live {
Off,
Expand All @@ -607,6 +621,7 @@ pub enum Live {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum HasPopup {
True,
Expand All @@ -622,6 +637,7 @@ pub enum HasPopup {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum ListStyle {
Circle,
Expand All @@ -638,6 +654,7 @@ pub enum ListStyle {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum TextAlign {
Left,
Expand All @@ -651,6 +668,7 @@ pub enum TextAlign {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum VerticalOffset {
Subscript,
Expand All @@ -662,6 +680,7 @@ pub enum VerticalOffset {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
#[cfg_attr(feature = "pyo3", pyclass(module = "accesskit"))]
#[repr(u8)]
pub enum TextDecoration {
Solid,
Expand Down

0 comments on commit 9b12d0c

Please sign in to comment.