From 6936ecc51a2d84e8adee21a003120a05513c6c20 Mon Sep 17 00:00:00 2001 From: Adam Leventhal Date: Tue, 2 May 2023 13:55:50 -0700 Subject: [PATCH] update typify (#452) --- Cargo.lock | 20 ++++------------ .../tests/output/nexus-builder-tagged.out | 22 ++++++++--------- .../tests/output/nexus-builder.out | 24 ++++++++++--------- .../tests/output/nexus-positional.out | 22 ++++++++--------- 4 files changed, 40 insertions(+), 48 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index df6403d..000d6f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1284,7 +1284,7 @@ dependencies = [ "progenitor-macro", "project-root", "rand", - "regress 0.6.0", + "regress", "reqwest", "rustfmt-wrapper", "schemars", @@ -1430,16 +1430,6 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" -[[package]] -name = "regress" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d995d590bd8ec096d1893f414bf3f5e8b0ee4c9eed9a5642b9766ef2c8e2e8e9" -dependencies = [ - "hashbrown 0.13.2", - "memchr", -] - [[package]] name = "regress" version = "0.6.0" @@ -2198,7 +2188,7 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "typify" version = "0.0.12-dev" -source = "git+https://github.com/oxidecomputer/typify#4152a79d8e04cb9d8625c2fa0232f6aa657dbb24" +source = "git+https://github.com/oxidecomputer/typify#70a5b06a0948f13264f7a27b2015c3814f90ca8a" dependencies = [ "typify-impl", "typify-macro", @@ -2207,13 +2197,13 @@ dependencies = [ [[package]] name = "typify-impl" version = "0.0.12-dev" -source = "git+https://github.com/oxidecomputer/typify#4152a79d8e04cb9d8625c2fa0232f6aa657dbb24" +source = "git+https://github.com/oxidecomputer/typify#70a5b06a0948f13264f7a27b2015c3814f90ca8a" dependencies = [ "heck", "log", "proc-macro2", "quote", - "regress 0.5.0", + "regress", "schemars", "serde_json", "syn 2.0.15", @@ -2224,7 +2214,7 @@ dependencies = [ [[package]] name = "typify-macro" version = "0.0.12-dev" -source = "git+https://github.com/oxidecomputer/typify#4152a79d8e04cb9d8625c2fa0232f6aa657dbb24" +source = "git+https://github.com/oxidecomputer/typify#70a5b06a0948f13264f7a27b2015c3814f90ca8a" dependencies = [ "proc-macro2", "quote", diff --git a/progenitor-impl/tests/output/nexus-builder-tagged.out b/progenitor-impl/tests/output/nexus-builder-tagged.out index 8901e96..7942090 100644 --- a/progenitor-impl/tests/output/nexus-builder-tagged.out +++ b/progenitor-impl/tests/output/nexus-builder-tagged.out @@ -2486,7 +2486,7 @@ pub mod types { } ///An IPv4 subnet, including prefix and subnet mask - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Ipv4Net(String); impl std::ops::Deref for Ipv4Net { type Target = String; @@ -2582,7 +2582,7 @@ pub mod types { } ///An IPv6 subnet, including prefix and subnet mask - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Ipv6Net(String); impl std::ops::Deref for Ipv6Net { type Target = String; @@ -2678,7 +2678,7 @@ pub mod types { ///An inclusive-inclusive range of IP ports. The second port may be omitted /// to represent a single port - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct L4PortRange(String); impl std::ops::Deref for L4PortRange { type Target = String; @@ -2752,7 +2752,7 @@ pub mod types { } ///A Media Access Control address, in EUI-48 format - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct MacAddr(String); impl std::ops::Deref for MacAddr { type Target = String; @@ -2869,7 +2869,7 @@ pub mod types { ///Names must begin with a lower case ASCII letter, be composed exclusively /// of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end /// with a '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Name(String); impl std::ops::Deref for Name { type Target = String; @@ -3253,7 +3253,7 @@ pub mod types { /// is used to identify its output. Nodes that depend on a given node /// (either directly or indirectly) can access the node's output using its /// name. - #[derive(Clone, Debug, Deserialize, Serialize)] + #[derive(Clone, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct NodeName(pub String); impl std::ops::Deref for NodeName { type Target = String; @@ -3493,7 +3493,7 @@ pub mod types { } ///Passwords may be subject to additional constraints. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Password(String); impl std::ops::Deref for Password { type Target = String; @@ -3928,7 +3928,7 @@ pub mod types { } ///Role names consist of two string components separated by dot ("."). - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct RoleName(String); impl std::ops::Deref for RoleName { type Target = String; @@ -4438,7 +4438,7 @@ pub mod types { } } - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct SemverVersion(String); impl std::ops::Deref for SemverVersion { type Target = String; @@ -5235,7 +5235,7 @@ pub mod types { ///Names are constructed by concatenating the target and metric names with /// ':'. Target and metric names must be lowercase alphanumeric characters /// with '_' separating words. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct TimeseriesName(String); impl std::ops::Deref for TimeseriesName { type Target = String; @@ -5697,7 +5697,7 @@ pub mod types { ///Names must begin with a lower case ASCII letter, be composed exclusively /// of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end /// with a '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct UserId(String); impl std::ops::Deref for UserId { type Target = String; diff --git a/progenitor-impl/tests/output/nexus-builder.out b/progenitor-impl/tests/output/nexus-builder.out index d22a2bf..ad9b10d 100644 --- a/progenitor-impl/tests/output/nexus-builder.out +++ b/progenitor-impl/tests/output/nexus-builder.out @@ -2506,7 +2506,7 @@ pub mod types { } ///An IPv4 subnet, including prefix and subnet mask - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct Ipv4Net(String); impl std::ops::Deref for Ipv4Net { type Target = String; @@ -2602,7 +2602,7 @@ pub mod types { } ///An IPv6 subnet, including prefix and subnet mask - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct Ipv6Net(String); impl std::ops::Deref for Ipv6Net { type Target = String; @@ -2698,7 +2698,7 @@ pub mod types { ///An inclusive-inclusive range of IP ports. The second port may be omitted /// to represent a single port - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct L4PortRange(String); impl std::ops::Deref for L4PortRange { type Target = String; @@ -2772,7 +2772,7 @@ pub mod types { } ///A Media Access Control address, in EUI-48 format - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct MacAddr(String); impl std::ops::Deref for MacAddr { type Target = String; @@ -2889,7 +2889,7 @@ pub mod types { ///Names must begin with a lower case ASCII letter, be composed exclusively /// of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end /// with a '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, Hash, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct Name(String); impl std::ops::Deref for Name { type Target = String; @@ -3277,7 +3277,9 @@ pub mod types { /// is used to identify its output. Nodes that depend on a given node /// (either directly or indirectly) can access the node's output using its /// name. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive( + Clone, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + )] pub struct NodeName(pub String); impl std::ops::Deref for NodeName { type Target = String; @@ -3519,7 +3521,7 @@ pub mod types { } ///Passwords may be subject to additional constraints. - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct Password(String); impl std::ops::Deref for Password { type Target = String; @@ -3958,7 +3960,7 @@ pub mod types { } ///Role names consist of two string components separated by dot ("."). - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct RoleName(String); impl std::ops::Deref for RoleName { type Target = String; @@ -4470,7 +4472,7 @@ pub mod types { } } - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct SemverVersion(String); impl std::ops::Deref for SemverVersion { type Target = String; @@ -5277,7 +5279,7 @@ pub mod types { ///Names are constructed by concatenating the target and metric names with /// ':'. Target and metric names must be lowercase alphanumeric characters /// with '_' separating words. - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct TimeseriesName(String); impl std::ops::Deref for TimeseriesName { type Target = String; @@ -5743,7 +5745,7 @@ pub mod types { ///Names must begin with a lower case ASCII letter, be composed exclusively /// of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end /// with a '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] pub struct UserId(String); impl std::ops::Deref for UserId { type Target = String; diff --git a/progenitor-impl/tests/output/nexus-positional.out b/progenitor-impl/tests/output/nexus-positional.out index 3c8d43a..b8ce932 100644 --- a/progenitor-impl/tests/output/nexus-positional.out +++ b/progenitor-impl/tests/output/nexus-positional.out @@ -2192,7 +2192,7 @@ pub mod types { } ///An IPv4 subnet, including prefix and subnet mask - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Ipv4Net(String); impl std::ops::Deref for Ipv4Net { type Target = String; @@ -2282,7 +2282,7 @@ pub mod types { } ///An IPv6 subnet, including prefix and subnet mask - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Ipv6Net(String); impl std::ops::Deref for Ipv6Net { type Target = String; @@ -2372,7 +2372,7 @@ pub mod types { ///An inclusive-inclusive range of IP ports. The second port may be omitted /// to represent a single port - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct L4PortRange(String); impl std::ops::Deref for L4PortRange { type Target = String; @@ -2446,7 +2446,7 @@ pub mod types { } ///A Media Access Control address, in EUI-48 format - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct MacAddr(String); impl std::ops::Deref for MacAddr { type Target = String; @@ -2551,7 +2551,7 @@ pub mod types { ///Names must begin with a lower case ASCII letter, be composed exclusively /// of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end /// with a '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Name(String); impl std::ops::Deref for Name { type Target = String; @@ -2911,7 +2911,7 @@ pub mod types { /// is used to identify its output. Nodes that depend on a given node /// (either directly or indirectly) can access the node's output using its /// name. - #[derive(Clone, Debug, Deserialize, Serialize)] + #[derive(Clone, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct NodeName(pub String); impl std::ops::Deref for NodeName { type Target = String; @@ -3115,7 +3115,7 @@ pub mod types { } ///Passwords may be subject to additional constraints. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct Password(String); impl std::ops::Deref for Password { type Target = String; @@ -3484,7 +3484,7 @@ pub mod types { } ///Role names consist of two string components separated by dot ("."). - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct RoleName(String); impl std::ops::Deref for RoleName { type Target = String; @@ -3940,7 +3940,7 @@ pub mod types { } } - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct SemverVersion(String); impl std::ops::Deref for SemverVersion { type Target = String; @@ -4629,7 +4629,7 @@ pub mod types { ///Names are constructed by concatenating the target and metric names with /// ':'. Target and metric names must be lowercase alphanumeric characters /// with '_' separating words. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct TimeseriesName(String); impl std::ops::Deref for TimeseriesName { type Target = String; @@ -5031,7 +5031,7 @@ pub mod types { ///Names must begin with a lower case ASCII letter, be composed exclusively /// of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end /// with a '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, Serialize)] + #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] pub struct UserId(String); impl std::ops::Deref for UserId { type Target = String;