concrete_core/specification/entities/
markers.rs1use std::fmt::Debug;
3
4pub trait EntityKindMarker: seal::EntityKindMarkerSealed {}
14macro_rules! entity_kind_marker {
15        (@ $name: ident => $doc: literal)=>{
16            #[doc=$doc]
17            #[derive(Debug, Clone, Copy)]
18            pub struct $name{}
19            impl seal::EntityKindMarkerSealed for $name{}
20            impl EntityKindMarker for $name{}
21        };
22        ($($name: ident => $doc: literal),+) =>{
23            $(
24                entity_kind_marker!(@ $name => $doc);
25            )+
26        }
27}
28entity_kind_marker! {
29        PlaintextKind
30            => "An empty type representing the plaintext kind in the type system.",
31        PlaintextVectorKind
32            => "An empty type representing the plaintext vector kind in the type system",
33        CleartextKind
34            => "An empty type representing the cleartext kind in the type system.",
35        CleartextVectorKind
36            => "An empty type representing the cleartext vector kind in the type system.",
37        LweCiphertextKind
38            => "An empty type representing the LWE ciphertext kind in the type system.",
39        LweCiphertextVectorKind
40            => "An empty type representing the LWE ciphertext vector kind in the type system.",
41        LweSeededCiphertextKind
42            => "An empty type representing the seeded LWE ciphertext kind in the type system.",
43        LweSeededCiphertextVectorKind
44            => "An empty type representing the seeded LWE ciphertext vector kind in the type system.",
45        GlweCiphertextKind
46            => "An empty type representing the GLWE ciphertext kind in the type system.",
47        GlweCiphertextVectorKind
48            => "An empty type representing the GLWE ciphertext vector kind in the type system.",
49        GlweSeededCiphertextKind
50            => "An empty type representing the seeded GLWE ciphertext kind in the type system.",
51        GlweSeededCiphertextVectorKind
52            => "An empty type representing the seeded GLWE ciphertext vector kind in the type system.",
53        GgswCiphertextKind
54            => "An empty type representing the GGSW ciphertext kind in the type system.",
55        GgswCiphertextVectorKind
56            => "An empty type representing the GGSW ciphertext vector kind in the type system.",
57        GgswSeededCiphertextKind
58            => "An empty type representing the seeded GGSW ciphertext kind in the type system.",
59        GswCiphertextKind
60            => "An empty type representing the GSW ciphertext kind in the type system.",
61        GswCiphertextVectorKind
62            => "An empty type representing the GSW ciphertext vector kind in the type system.",
63        LwePublicKeyKind
64            => "An empty type representing the LWE public key kind in the type system.",
65        LweSecretKeyKind
66            => "An empty type representing the LWE secret key kind in the type system.",
67        GlweSecretKeyKind
68            => "An empty type representing the GLWE secret key kind in the type system.",
69        LweKeyswitchKeyKind
70            => "An empty type representing the LWE keyswitch key kind in the type system.",
71        LweSeededKeyswitchKeyKind
72            => "An empty type representing the seeded LWE keyswitch key kind in the type system.",
73        LwePackingKeyswitchKeyKind
74            => "An empty type representing the packing keyswitch key kind in the type system.",
75        LwePrivateFunctionalPackingKeyswitchKeyKind
76            => "An empty type representing the private functional packing keyswitch key in the \
77            type system.",
78        LweCircuitBootstrapPrivateFunctionalPackingKeyswitchKeysKind
79            => "An empty type representing the private functional packing keyswitch key vector \
80            used for a circuit bootstrap in the type system.",
81        LweBootstrapKeyKind
82            => "An empty type representing the LWE bootstrap key kind in the type system.",
83        LweSeededBootstrapKeyKind
84            => "An empty type representing the seeded LWE bootstrap key kind in the type system.",
85        EncoderKind
86            => "An empty type representing the encoder kind in the type system.",
87        EncoderVectorKind
88            => "An empty type representing the encoder vector kind in the type system"
89}
90
91pub(crate) mod seal {
92    pub trait EntityKindMarkerSealed {}
93}