Skip to main content

typed_quote/tokens/
never.rs

1use 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}