From 4038e8dc390fbdcfd3f767e94ab322b5ced7b062 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 13:16:52 +0000 Subject: [PATCH 1/2] Update educe requirement from 0.4 to 0.5 Updates the requirements on [educe](https://github.com/magiclen/educe) to permit the latest version. - [Commits](https://github.com/magiclen/educe/compare/v0.4.0...v0.5.4) --- updated-dependencies: - dependency-name: educe dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- conjure-object/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conjure-object/Cargo.toml b/conjure-object/Cargo.toml index ba6dc2af..0ab15282 100644 --- a/conjure-object/Cargo.toml +++ b/conjure-object/Cargo.toml @@ -11,7 +11,7 @@ readme = "../README.md" [dependencies] base64 = "0.21" chrono = { version = "0.4.26", default-features = false, features = ["clock", "std", "serde"] } -educe = { version = "0.4", default-features = false, features = [ +educe = { version = "0.5", default-features = false, features = [ "Hash", "PartialEq", "Eq", From 9417104cd41da032866b297e1bef0e6bdb0f9451 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Fri, 2 Feb 2024 20:17:58 -0500 Subject: [PATCH 2/2] fix build --- conjure-codegen/src/aliases.rs | 7 ++-- .../product/double_alias_example.rs | 7 ++-- .../example_types/product/double_example.rs | 7 ++-- .../src/example_types/product/list_example.rs | 7 ++-- .../product/many_field_example.rs | 7 ++-- .../product/primitive_optionals_example.rs | 7 ++-- conjure-codegen/src/objects/object.rs | 7 ++-- conjure-codegen/src/unions.rs | 7 ++-- conjure-object/src/lib.rs | 3 +- conjure-object/src/private.rs | 34 ------------------- .../src/product/double_alias_example.rs | 7 ++-- example-api/src/product/double_example.rs | 7 ++-- example-api/src/product/list_example.rs | 7 ++-- example-api/src/product/many_field_example.rs | 7 ++-- .../product/primitive_optionals_example.rs | 7 ++-- 15 files changed, 40 insertions(+), 88 deletions(-) diff --git a/conjure-codegen/src/aliases.rs b/conjure-codegen/src/aliases.rs index 88f1644c..eef9bde4 100644 --- a/conjure-codegen/src/aliases.rs +++ b/conjure-codegen/src/aliases.rs @@ -36,10 +36,9 @@ pub fn generate(ctx: &Context, def: &AliasDefinition) -> TokenStream { type_attrs.push(quote!(#[educe(PartialEq, Eq, PartialOrd, Ord, Hash)])); field_attrs.push(quote! { #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] }) } else { diff --git a/conjure-codegen/src/example_types/product/double_alias_example.rs b/conjure-codegen/src/example_types/product/double_alias_example.rs index 154850bf..5b1e8db4 100644 --- a/conjure-codegen/src/example_types/product/double_alias_example.rs +++ b/conjure-codegen/src/example_types/product/double_alias_example.rs @@ -3,10 +3,9 @@ use conjure_object::serde::{ser, de}; #[educe(PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct DoubleAliasExample( #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] pub f64, ); diff --git a/conjure-codegen/src/example_types/product/double_example.rs b/conjure-codegen/src/example_types/product/double_example.rs index a64379f7..029bf7e3 100644 --- a/conjure-codegen/src/example_types/product/double_example.rs +++ b/conjure-codegen/src/example_types/product/double_example.rs @@ -5,10 +5,9 @@ use std::fmt; #[educe(PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct DoubleExample { #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] double_value: f64, } diff --git a/conjure-codegen/src/example_types/product/list_example.rs b/conjure-codegen/src/example_types/product/list_example.rs index 5b403701..8cef0d8a 100644 --- a/conjure-codegen/src/example_types/product/list_example.rs +++ b/conjure-codegen/src/example_types/product/list_example.rs @@ -7,10 +7,9 @@ pub struct ListExample { items: Vec, primitive_items: Vec, #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] double_items: Vec, } diff --git a/conjure-codegen/src/example_types/product/many_field_example.rs b/conjure-codegen/src/example_types/product/many_field_example.rs index 7ab0cb96..f291b8ff 100644 --- a/conjure-codegen/src/example_types/product/many_field_example.rs +++ b/conjure-codegen/src/example_types/product/many_field_example.rs @@ -7,10 +7,9 @@ pub struct ManyFieldExample { string: String, integer: i32, #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] double_value: f64, optional_item: Option, diff --git a/conjure-codegen/src/example_types/product/primitive_optionals_example.rs b/conjure-codegen/src/example_types/product/primitive_optionals_example.rs index 4e7c4235..09b9a088 100644 --- a/conjure-codegen/src/example_types/product/primitive_optionals_example.rs +++ b/conjure-codegen/src/example_types/product/primitive_optionals_example.rs @@ -5,10 +5,9 @@ use std::fmt; #[educe(PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct PrimitiveOptionalsExample { #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] num: Option, bool: Option, diff --git a/conjure-codegen/src/objects/object.rs b/conjure-codegen/src/objects/object.rs index ebfa71f2..a8f43d6e 100644 --- a/conjure-codegen/src/objects/object.rs +++ b/conjure-codegen/src/objects/object.rs @@ -49,10 +49,9 @@ pub fn generate(ctx: &Context, def: &ObjectDefinition) -> TokenStream { if ctx.is_double(s.type_()) { quote! { #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] } } else { diff --git a/conjure-codegen/src/unions.rs b/conjure-codegen/src/unions.rs index a7c06976..fd64047f 100644 --- a/conjure-codegen/src/unions.rs +++ b/conjure-codegen/src/unions.rs @@ -89,10 +89,9 @@ fn generate_enum(ctx: &Context, def: &UnionDefinition) -> TokenStream { let attr = if ctx.is_double(f.type_()) { quote! { #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] } } else { diff --git a/conjure-object/src/lib.rs b/conjure-object/src/lib.rs index fd12333a..c180ecb6 100644 --- a/conjure-object/src/lib.rs +++ b/conjure-object/src/lib.rs @@ -11,13 +11,12 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#![warn(clippy::all)] +#![warn(clippy::all, missing_docs)] //! Rust implementations of Conjure types. //! //! This crate consists of reexports and definitions of the Rust types that correspond to Conjure types. It is a //! required dependency of crates which contain Conjure-generated code. -#![warn(clippy::all, missing_docs)] pub use chrono::{self, DateTime, Utc}; pub use serde; diff --git a/conjure-object/src/private.rs b/conjure-object/src/private.rs index fef28620..e895c76a 100644 --- a/conjure-object/src/private.rs +++ b/conjure-object/src/private.rs @@ -20,8 +20,6 @@ use std::marker::PhantomData; use std::{fmt, mem}; pub trait DoubleOps { - fn partial_cmp(&self, other: &Self) -> Option; - fn cmp(&self, other: &Self) -> Ordering; fn eq(&self, other: &Self) -> bool; @@ -32,11 +30,6 @@ pub trait DoubleOps { } impl DoubleOps for f64 { - #[inline] - fn partial_cmp(&self, other: &Self) -> Option { - OrderedFloat(*self).partial_cmp(&OrderedFloat(*other)) - } - #[inline] fn cmp(&self, other: &Self) -> Ordering { OrderedFloat(*self).cmp(&OrderedFloat(*other)) @@ -60,16 +53,6 @@ impl DoubleOps for Option where T: DoubleOps, { - #[inline] - fn partial_cmp(&self, other: &Self) -> Option { - match (self, other) { - (Some(a), Some(b)) => a.partial_cmp(b), - (Some(_), None) => Some(Ordering::Greater), - (None, Some(_)) => Some(Ordering::Less), - (None, None) => Some(Ordering::Equal), - } - } - #[inline] fn cmp(&self, other: &Self) -> Ordering { match (self, other) { @@ -105,23 +88,6 @@ impl DoubleOps for Vec where T: DoubleOps, { - #[inline] - fn partial_cmp(&self, other: &Self) -> Option { - let l = usize::min(self.len(), other.len()); - - let lhs = &self[..l]; - let rhs = &other[..l]; - - for i in 0..l { - match lhs[i].partial_cmp(&rhs[i]) { - Some(Ordering::Equal) => {} - v => return v, - } - } - - self.len().partial_cmp(&other.len()) - } - #[inline] fn cmp(&self, other: &Self) -> Ordering { let l = usize::min(self.len(), other.len()); diff --git a/example-api/src/product/double_alias_example.rs b/example-api/src/product/double_alias_example.rs index 154850bf..5b1e8db4 100644 --- a/example-api/src/product/double_alias_example.rs +++ b/example-api/src/product/double_alias_example.rs @@ -3,10 +3,9 @@ use conjure_object::serde::{ser, de}; #[educe(PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct DoubleAliasExample( #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] pub f64, ); diff --git a/example-api/src/product/double_example.rs b/example-api/src/product/double_example.rs index a64379f7..029bf7e3 100644 --- a/example-api/src/product/double_example.rs +++ b/example-api/src/product/double_example.rs @@ -5,10 +5,9 @@ use std::fmt; #[educe(PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct DoubleExample { #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] double_value: f64, } diff --git a/example-api/src/product/list_example.rs b/example-api/src/product/list_example.rs index 5b403701..8cef0d8a 100644 --- a/example-api/src/product/list_example.rs +++ b/example-api/src/product/list_example.rs @@ -7,10 +7,9 @@ pub struct ListExample { items: Vec, primitive_items: Vec, #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] double_items: Vec, } diff --git a/example-api/src/product/many_field_example.rs b/example-api/src/product/many_field_example.rs index 7ab0cb96..f291b8ff 100644 --- a/example-api/src/product/many_field_example.rs +++ b/example-api/src/product/many_field_example.rs @@ -7,10 +7,9 @@ pub struct ManyFieldExample { string: String, integer: i32, #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] double_value: f64, optional_item: Option, diff --git a/example-api/src/product/primitive_optionals_example.rs b/example-api/src/product/primitive_optionals_example.rs index 4e7c4235..09b9a088 100644 --- a/example-api/src/product/primitive_optionals_example.rs +++ b/example-api/src/product/primitive_optionals_example.rs @@ -5,10 +5,9 @@ use std::fmt; #[educe(PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct PrimitiveOptionalsExample { #[educe( - PartialEq(trait = "conjure_object::private::DoubleOps"), - PartialOrd(trait = "conjure_object::private::DoubleOps"), - Ord(trait = "conjure_object::private::DoubleOps"), - Hash(trait = "conjure_object::private::DoubleOps"), + PartialEq(method(conjure_object::private::DoubleOps::eq)), + Ord(method(conjure_object::private::DoubleOps::cmp)), + Hash(method(conjure_object::private::DoubleOps::hash)), )] num: Option, bool: Option,