typed_quote/tokens/
never.rs1use crate::{Never, Span};
2
3use super::*;
4
5impl sealed::MaybeSpan for Never {}
6impl MaybeSpan for Never {
7 #[cfg(feature = "proc-macro")]
8 fn into_span_or_call_site(self) -> proc_macro::Span {
9 match self {}
10 }
11 #[cfg(feature = "proc-macro")]
12 fn make_punct(self, _: proc_macro::Punct) -> proc_macro::Punct {
13 match self {}
14 }
15 #[cfg(feature = "proc-macro")]
16 fn make_group(self, _: proc_macro::Group) -> proc_macro::Group {
17 match self {}
18 }
19 #[cfg(feature = "proc-macro")]
20 fn make_literal(self, _: proc_macro::Literal) -> proc_macro::Literal {
21 match self {}
22 }
23
24 #[cfg(feature = "proc-macro2")]
25 fn into_span2_or_call_site(self) -> proc_macro2::Span {
26 match self {}
27 }
28 #[cfg(feature = "proc-macro2")]
29 fn make_punct2(self, _: proc_macro2::Punct) -> proc_macro2::Punct {
30 match self {}
31 }
32 #[cfg(feature = "proc-macro2")]
33 fn make_group2(self, _: proc_macro2::Group) -> proc_macro2::Group {
34 match self {}
35 }
36 #[cfg(feature = "proc-macro2")]
37 fn make_literal2(self, _: proc_macro2::Literal) -> proc_macro2::Literal {
38 match self {}
39 }
40
41 type Span = Self;
42 fn try_into_span(self) -> Option<Self::Span> {
43 match self {}
44 }
45
46 type WithDefaultSpan<S: Span> = Self;
47 fn with_default_span<S: Span>(self, _: S) -> Self::WithDefaultSpan<S> {
48 match self {}
49 }
50
51 type WithReplacedSpan<S: Span> = Self;
52 fn with_replaced_span<S: Span>(self, _: S) -> Self::WithReplacedSpan<S> {
53 match self {}
54 }
55}
56
57#[cfg(any(feature = "proc-macro", feature = "proc-macro2"))]
58impl<T: IntoTokens + WithSpan> crate::replace_span_of::ReplaceSpanOf<T> for Never {
59 type ReplaceSpanOf = Never;
60
61 fn replace_span_of(self, _: T) -> Self::ReplaceSpanOf {
62 match self {}
63 }
64}
65
66impl sealed::Span for Never {}
67impl Span for Never {}
68
69impl sealed::IntoTokenTree for Never {}
70impl IntoTokenTree for Never {
71 crate::impl_into_token_tree!(|self| match self {});
72}
73
74impl sealed::ToTokenTree for Never {}
75impl ToTokenTree for Never {
76 crate::impl_to_token_tree!(|self| match *self {});
77}
78
79impl sealed::ToTokens for Never {}
80impl ToTokens for Never {
81 crate::impl_to_tokens!(|self, _| match *self {}, match *self {});
82}
83
84impl sealed::IntoTokens for Never {}
85impl IntoTokens for Never {
86 crate::impl_into_tokens!(|self, _| match self {}, match self {});
87}
88
89impl sealed::WithSpan for Never {}
90impl WithSpan for Never {
91 type WithDefaultSpan<S: Span> = Never;
92
93 fn with_default_span<S: Span>(self, _: S) -> Self::WithDefaultSpan<S> {
94 match self {}
95 }
96
97 type WithReplacedSpan<S: Span> = Never;
98
99 fn with_replaced_span<S: Span>(self, _: S) -> Self::WithReplacedSpan<S> {
100 match self {}
101 }
102}
103
104impl sealed::RefWithSpan for Never {}
105impl RefWithSpan for Never {
106 type RefWithDefaultSpan<'a, S: Span>
107 = Never
108 where
109 Self: 'a;
110
111 fn ref_with_default_span<S: Span>(&self, _: S) -> Self::RefWithDefaultSpan<'_, S> {
112 match *self {}
113 }
114
115 type RefWithReplacedSpan<'a, S: Span>
116 = Never
117 where
118 Self: 'a;
119
120 fn ref_with_replaced_span<S: Span>(&self, _: S) -> Self::RefWithReplacedSpan<'_, S> {
121 match *self {}
122 }
123}