From 6d8672a6139fdedb617ddb059affe7dd454bc335 Mon Sep 17 00:00:00 2001 From: eskimor Date: Fri, 2 Feb 2024 10:50:13 +0100 Subject: [PATCH 1/2] Add BinaryHeap implementation. --- src/impls.rs | 16 +++++++++++++++- src/tests.rs | 10 +++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/impls.rs b/src/impls.rs index 7fd6f8fb..e7d56c68 100644 --- a/src/impls.rs +++ b/src/impls.rs @@ -15,7 +15,7 @@ use crate::prelude::{ borrow::{Cow, ToOwned}, boxed::Box, - collections::{BTreeMap, BTreeSet, VecDeque}, + collections::{BTreeMap, BTreeSet, VecDeque, BinaryHeap}, fmt, marker::PhantomData, ops::{Range, RangeInclusive}, @@ -263,6 +263,20 @@ where } } +impl TypeInfo for BinaryHeap +where + T: TypeInfo + 'static, +{ + type Identity = Self; + + fn type_info() -> Type { + Type::builder() + .path(Path::prelude("BinaryHeap")) + .type_params(type_params![T]) + .composite(Fields::unnamed().field(|f| f.ty::<[T]>())) + } +} + impl TypeInfo for Box where T: TypeInfo + ?Sized + 'static, diff --git a/src/tests.rs b/src/tests.rs index 8ff51f95..115f46f8 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -17,7 +17,7 @@ use crate::{ prelude::{ borrow::Cow, boxed::Box, - collections::{BTreeMap, BTreeSet}, + collections::{BTreeMap, BTreeSet, BinaryHeap}, string::String, vec, }, @@ -132,6 +132,14 @@ fn collections() { .composite(Fields::unnamed().field(|f| f.ty::<[String]>())) ); + assert_type!( + BinaryHeap, + Type::builder() + .path(Path::prelude("BinaryHeap")) + .type_params(named_type_params![(T, String)]) + .composite(Fields::unnamed().field(|f| f.ty::<[String]>())) + ); + assert_type!( std::collections::VecDeque, TypeDefSequence::new(meta_type::()) From 5bfedf7debdc9a5b938b4edeb32a8a55cc843fa5 Mon Sep 17 00:00:00 2001 From: eskimor Date: Fri, 2 Feb 2024 10:57:16 +0100 Subject: [PATCH 2/2] Fmt. --- src/impls.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/impls.rs b/src/impls.rs index e7d56c68..96daea65 100644 --- a/src/impls.rs +++ b/src/impls.rs @@ -15,7 +15,7 @@ use crate::prelude::{ borrow::{Cow, ToOwned}, boxed::Box, - collections::{BTreeMap, BTreeSet, VecDeque, BinaryHeap}, + collections::{BTreeMap, BTreeSet, BinaryHeap, VecDeque}, fmt, marker::PhantomData, ops::{Range, RangeInclusive},