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}