Skip to content

Commit 88bc74c

Browse files
committed
Remove VariantDiscriminant from list of traits derived by the Encapsulate umbrella macro
1 parent a8a06c8 commit 88bc74c

File tree

5 files changed

+0
-327
lines changed

5 files changed

+0
-327
lines changed

macros/src/enum_deriver.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -646,9 +646,6 @@ impl EnumDeriver {
646646
let variant_downcast = enum_config
647647
.is_included(macro_name::VARIANT_DOWNCAST)
648648
.then_some(self.derive_variant_downcast()?);
649-
let variant_discriminant = enum_config
650-
.is_included(macro_name::VARIANT_DISCRIMINANT)
651-
.then_some(self.derive_variant_discriminant()?);
652649

653650
Ok(quote::quote! {
654651
#from
@@ -659,7 +656,6 @@ impl EnumDeriver {
659656
#as_variant_mut
660657
#into_variant
661658
#variant_downcast
662-
#variant_discriminant
663659
})
664660
}
665661

tests/derive-tests/encapsulate/pass/enum/exclude_attr.out.rs

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -147,72 +147,4 @@ impl ::enumcapsulate::IntoVariant<VariantD> for Enum {
147147
}
148148
}
149149
impl ::enumcapsulate::VariantDowncast for Enum {}
150-
pub enum EnumDiscriminant {
151-
OneTupleField,
152-
OneStructField,
153-
ExcludedWildcard,
154-
ExcludedSelective,
155-
}
156-
#[automatically_derived]
157-
impl ::core::marker::Copy for EnumDiscriminant {}
158-
#[automatically_derived]
159-
impl ::core::clone::Clone for EnumDiscriminant {
160-
#[inline]
161-
fn clone(&self) -> EnumDiscriminant {
162-
*self
163-
}
164-
}
165-
#[automatically_derived]
166-
impl ::core::cmp::Eq for EnumDiscriminant {
167-
#[inline]
168-
#[doc(hidden)]
169-
#[coverage(off)]
170-
fn assert_receiver_is_total_eq(&self) -> () {}
171-
}
172-
#[automatically_derived]
173-
impl ::core::marker::StructuralPartialEq for EnumDiscriminant {}
174-
#[automatically_derived]
175-
impl ::core::cmp::PartialEq for EnumDiscriminant {
176-
#[inline]
177-
fn eq(&self, other: &EnumDiscriminant) -> bool {
178-
let __self_tag = ::core::intrinsics::discriminant_value(self);
179-
let __arg1_tag = ::core::intrinsics::discriminant_value(other);
180-
__self_tag == __arg1_tag
181-
}
182-
}
183-
#[automatically_derived]
184-
impl ::core::hash::Hash for EnumDiscriminant {
185-
#[inline]
186-
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
187-
let __self_tag = ::core::intrinsics::discriminant_value(self);
188-
::core::hash::Hash::hash(&__self_tag, state)
189-
}
190-
}
191-
#[automatically_derived]
192-
impl ::core::fmt::Debug for EnumDiscriminant {
193-
#[inline]
194-
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
195-
::core::fmt::Formatter::write_str(
196-
f,
197-
match self {
198-
EnumDiscriminant::OneTupleField => "OneTupleField",
199-
EnumDiscriminant::OneStructField => "OneStructField",
200-
EnumDiscriminant::ExcludedWildcard => "ExcludedWildcard",
201-
EnumDiscriminant::ExcludedSelective => "ExcludedSelective",
202-
},
203-
)
204-
}
205-
}
206-
impl ::enumcapsulate::VariantDiscriminant for Enum {
207-
type Discriminant = EnumDiscriminant;
208-
fn variant_discriminant(&self) -> Self::Discriminant {
209-
match self {
210-
Enum::OneTupleField(..) => EnumDiscriminant::OneTupleField,
211-
Enum::OneStructField { .. } => EnumDiscriminant::OneStructField,
212-
Enum::ExcludedWildcard(..) => EnumDiscriminant::ExcludedWildcard,
213-
Enum::ExcludedSelective(..) => EnumDiscriminant::ExcludedSelective,
214-
_ => ::core::panicking::panic("internal error: entered unreachable code"),
215-
}
216-
}
217-
}
218150
fn main() {}

tests/derive-tests/encapsulate/pass/enum/generics.out.rs

Lines changed: 0 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -388,125 +388,4 @@ impl<'l, const N: usize, T> ::enumcapsulate::VariantDowncast for Enum<'l, N, T>
388388
where
389389
T: HasAssoc,
390390
{}
391-
pub enum EnumDiscriminant {
392-
Unit,
393-
OwnedSpecificType,
394-
BorrowedSpecificType,
395-
OwnedWithGenericLifetime,
396-
OwnedGenericTypeWithConstParam,
397-
OwnedGenericTypeWithTypeParam,
398-
OwnedGenericTypeWithMixedParams,
399-
OwnedGenericParam,
400-
BorrowedGenericParam,
401-
OwnedAssocTypeOfGenericParam,
402-
OwnedAssocTypeOfGenericParamBehindCast,
403-
OwnedAssocTypeOfSpecificTypeBehindCast,
404-
}
405-
#[automatically_derived]
406-
impl ::core::marker::Copy for EnumDiscriminant {}
407-
#[automatically_derived]
408-
impl ::core::clone::Clone for EnumDiscriminant {
409-
#[inline]
410-
fn clone(&self) -> EnumDiscriminant {
411-
*self
412-
}
413-
}
414-
#[automatically_derived]
415-
impl ::core::cmp::Eq for EnumDiscriminant {
416-
#[inline]
417-
#[doc(hidden)]
418-
#[coverage(off)]
419-
fn assert_receiver_is_total_eq(&self) -> () {}
420-
}
421-
#[automatically_derived]
422-
impl ::core::marker::StructuralPartialEq for EnumDiscriminant {}
423-
#[automatically_derived]
424-
impl ::core::cmp::PartialEq for EnumDiscriminant {
425-
#[inline]
426-
fn eq(&self, other: &EnumDiscriminant) -> bool {
427-
let __self_tag = ::core::intrinsics::discriminant_value(self);
428-
let __arg1_tag = ::core::intrinsics::discriminant_value(other);
429-
__self_tag == __arg1_tag
430-
}
431-
}
432-
#[automatically_derived]
433-
impl ::core::hash::Hash for EnumDiscriminant {
434-
#[inline]
435-
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
436-
let __self_tag = ::core::intrinsics::discriminant_value(self);
437-
::core::hash::Hash::hash(&__self_tag, state)
438-
}
439-
}
440-
#[automatically_derived]
441-
impl ::core::fmt::Debug for EnumDiscriminant {
442-
#[inline]
443-
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
444-
::core::fmt::Formatter::write_str(
445-
f,
446-
match self {
447-
EnumDiscriminant::Unit => "Unit",
448-
EnumDiscriminant::OwnedSpecificType => "OwnedSpecificType",
449-
EnumDiscriminant::BorrowedSpecificType => "BorrowedSpecificType",
450-
EnumDiscriminant::OwnedWithGenericLifetime => "OwnedWithGenericLifetime",
451-
EnumDiscriminant::OwnedGenericTypeWithConstParam => {
452-
"OwnedGenericTypeWithConstParam"
453-
}
454-
EnumDiscriminant::OwnedGenericTypeWithTypeParam => {
455-
"OwnedGenericTypeWithTypeParam"
456-
}
457-
EnumDiscriminant::OwnedGenericTypeWithMixedParams => {
458-
"OwnedGenericTypeWithMixedParams"
459-
}
460-
EnumDiscriminant::OwnedGenericParam => "OwnedGenericParam",
461-
EnumDiscriminant::BorrowedGenericParam => "BorrowedGenericParam",
462-
EnumDiscriminant::OwnedAssocTypeOfGenericParam => {
463-
"OwnedAssocTypeOfGenericParam"
464-
}
465-
EnumDiscriminant::OwnedAssocTypeOfGenericParamBehindCast => {
466-
"OwnedAssocTypeOfGenericParamBehindCast"
467-
}
468-
EnumDiscriminant::OwnedAssocTypeOfSpecificTypeBehindCast => {
469-
"OwnedAssocTypeOfSpecificTypeBehindCast"
470-
}
471-
},
472-
)
473-
}
474-
}
475-
impl<'l, const N: usize, T> ::enumcapsulate::VariantDiscriminant for Enum<'l, N, T>
476-
where
477-
T: HasAssoc,
478-
{
479-
type Discriminant = EnumDiscriminant;
480-
fn variant_discriminant(&self) -> Self::Discriminant {
481-
match self {
482-
Enum::Unit => EnumDiscriminant::Unit,
483-
Enum::OwnedSpecificType(..) => EnumDiscriminant::OwnedSpecificType,
484-
Enum::BorrowedSpecificType(..) => EnumDiscriminant::BorrowedSpecificType,
485-
Enum::OwnedWithGenericLifetime(..) => {
486-
EnumDiscriminant::OwnedWithGenericLifetime
487-
}
488-
Enum::OwnedGenericTypeWithConstParam(..) => {
489-
EnumDiscriminant::OwnedGenericTypeWithConstParam
490-
}
491-
Enum::OwnedGenericTypeWithTypeParam(..) => {
492-
EnumDiscriminant::OwnedGenericTypeWithTypeParam
493-
}
494-
Enum::OwnedGenericTypeWithMixedParams(..) => {
495-
EnumDiscriminant::OwnedGenericTypeWithMixedParams
496-
}
497-
Enum::OwnedGenericParam(..) => EnumDiscriminant::OwnedGenericParam,
498-
Enum::BorrowedGenericParam(..) => EnumDiscriminant::BorrowedGenericParam,
499-
Enum::OwnedAssocTypeOfGenericParam(..) => {
500-
EnumDiscriminant::OwnedAssocTypeOfGenericParam
501-
}
502-
Enum::OwnedAssocTypeOfGenericParamBehindCast(..) => {
503-
EnumDiscriminant::OwnedAssocTypeOfGenericParamBehindCast
504-
}
505-
Enum::OwnedAssocTypeOfSpecificTypeBehindCast(..) => {
506-
EnumDiscriminant::OwnedAssocTypeOfSpecificTypeBehindCast
507-
}
508-
_ => ::core::panicking::panic("internal error: entered unreachable code"),
509-
}
510-
}
511-
}
512391
fn main() {}

tests/derive-tests/encapsulate/pass/enum/mixed_variants.out.rs

Lines changed: 0 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -275,90 +275,4 @@ impl ::enumcapsulate::IntoVariant<VariantD> for Enum {
275275
}
276276
}
277277
impl ::enumcapsulate::VariantDowncast for Enum {}
278-
pub enum EnumDiscriminant {
279-
Unit,
280-
ZeroTupleFields,
281-
ZeroStructFields,
282-
OneTupleField,
283-
OneStructField,
284-
TwoTupleFields,
285-
TwoStructFields,
286-
Excluded,
287-
IncludedTuple,
288-
IncludedStruct,
289-
}
290-
#[automatically_derived]
291-
impl ::core::marker::Copy for EnumDiscriminant {}
292-
#[automatically_derived]
293-
impl ::core::clone::Clone for EnumDiscriminant {
294-
#[inline]
295-
fn clone(&self) -> EnumDiscriminant {
296-
*self
297-
}
298-
}
299-
#[automatically_derived]
300-
impl ::core::cmp::Eq for EnumDiscriminant {
301-
#[inline]
302-
#[doc(hidden)]
303-
#[coverage(off)]
304-
fn assert_receiver_is_total_eq(&self) -> () {}
305-
}
306-
#[automatically_derived]
307-
impl ::core::marker::StructuralPartialEq for EnumDiscriminant {}
308-
#[automatically_derived]
309-
impl ::core::cmp::PartialEq for EnumDiscriminant {
310-
#[inline]
311-
fn eq(&self, other: &EnumDiscriminant) -> bool {
312-
let __self_tag = ::core::intrinsics::discriminant_value(self);
313-
let __arg1_tag = ::core::intrinsics::discriminant_value(other);
314-
__self_tag == __arg1_tag
315-
}
316-
}
317-
#[automatically_derived]
318-
impl ::core::hash::Hash for EnumDiscriminant {
319-
#[inline]
320-
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
321-
let __self_tag = ::core::intrinsics::discriminant_value(self);
322-
::core::hash::Hash::hash(&__self_tag, state)
323-
}
324-
}
325-
#[automatically_derived]
326-
impl ::core::fmt::Debug for EnumDiscriminant {
327-
#[inline]
328-
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
329-
::core::fmt::Formatter::write_str(
330-
f,
331-
match self {
332-
EnumDiscriminant::Unit => "Unit",
333-
EnumDiscriminant::ZeroTupleFields => "ZeroTupleFields",
334-
EnumDiscriminant::ZeroStructFields => "ZeroStructFields",
335-
EnumDiscriminant::OneTupleField => "OneTupleField",
336-
EnumDiscriminant::OneStructField => "OneStructField",
337-
EnumDiscriminant::TwoTupleFields => "TwoTupleFields",
338-
EnumDiscriminant::TwoStructFields => "TwoStructFields",
339-
EnumDiscriminant::Excluded => "Excluded",
340-
EnumDiscriminant::IncludedTuple => "IncludedTuple",
341-
EnumDiscriminant::IncludedStruct => "IncludedStruct",
342-
},
343-
)
344-
}
345-
}
346-
impl ::enumcapsulate::VariantDiscriminant for Enum {
347-
type Discriminant = EnumDiscriminant;
348-
fn variant_discriminant(&self) -> Self::Discriminant {
349-
match self {
350-
Enum::Unit => EnumDiscriminant::Unit,
351-
Enum::ZeroTupleFields(..) => EnumDiscriminant::ZeroTupleFields,
352-
Enum::ZeroStructFields { .. } => EnumDiscriminant::ZeroStructFields,
353-
Enum::OneTupleField(..) => EnumDiscriminant::OneTupleField,
354-
Enum::OneStructField { .. } => EnumDiscriminant::OneStructField,
355-
Enum::TwoTupleFields(..) => EnumDiscriminant::TwoTupleFields,
356-
Enum::TwoStructFields { .. } => EnumDiscriminant::TwoStructFields,
357-
Enum::Excluded(..) => EnumDiscriminant::Excluded,
358-
Enum::IncludedTuple(..) => EnumDiscriminant::IncludedTuple,
359-
Enum::IncludedStruct { .. } => EnumDiscriminant::IncludedStruct,
360-
_ => ::core::panicking::panic("internal error: entered unreachable code"),
361-
}
362-
}
363-
}
364278
fn main() {}

tests/derive-tests/encapsulate/pass/enum/zero_variants.out.rs

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,6 @@ use enumcapsulate::{
33
};
44
pub enum Enum {}
55
impl ::enumcapsulate::VariantDowncast for Enum {}
6-
pub enum EnumDiscriminant {}
7-
#[automatically_derived]
8-
impl ::core::marker::Copy for EnumDiscriminant {}
9-
#[automatically_derived]
10-
impl ::core::clone::Clone for EnumDiscriminant {
11-
#[inline]
12-
fn clone(&self) -> EnumDiscriminant {
13-
*self
14-
}
15-
}
16-
#[automatically_derived]
17-
impl ::core::cmp::Eq for EnumDiscriminant {
18-
#[inline]
19-
#[doc(hidden)]
20-
#[coverage(off)]
21-
fn assert_receiver_is_total_eq(&self) -> () {}
22-
}
23-
#[automatically_derived]
24-
impl ::core::marker::StructuralPartialEq for EnumDiscriminant {}
25-
#[automatically_derived]
26-
impl ::core::cmp::PartialEq for EnumDiscriminant {
27-
#[inline]
28-
fn eq(&self, other: &EnumDiscriminant) -> bool {
29-
match *self {}
30-
}
31-
}
32-
#[automatically_derived]
33-
impl ::core::hash::Hash for EnumDiscriminant {
34-
#[inline]
35-
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
36-
match *self {}
37-
}
38-
}
39-
#[automatically_derived]
40-
impl ::core::fmt::Debug for EnumDiscriminant {
41-
#[inline]
42-
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
43-
match *self {}
44-
}
45-
}
46-
impl ::enumcapsulate::VariantDiscriminant for Enum {
47-
type Discriminant = EnumDiscriminant;
48-
fn variant_discriminant(&self) -> Self::Discriminant {
49-
match self {
50-
_ => ::core::panicking::panic("internal error: entered unreachable code"),
51-
}
52-
}
53-
}
546
fn check<T>()
557
where
568
T: VariantDowncast,

0 commit comments

Comments
 (0)