spacetime_bindings_macro_input/
sym.rs1pub struct Symbol(pub &'static str);
4
5#[macro_export]
6macro_rules! symbol {
7 ($ident:ident) => {
8 symbol!($ident, $ident);
9 };
10 ($const:ident, $ident:ident) => {
11 #[allow(non_upper_case_globals)]
12 #[doc = concat!("Matches `", stringify!($ident), "`.")]
13 pub const $const: Symbol = Symbol(stringify!($ident));
14 };
15}
16pub use symbol;
17
18symbol!(accessor);
19symbol!(at);
20symbol!(auto_inc);
21symbol!(btree);
22symbol!(column);
23symbol!(columns);
24symbol!(crate_, crate);
25symbol!(default);
26symbol!(direct);
27symbol!(event);
28symbol!(hash);
29symbol!(index);
30symbol!(name);
31symbol!(primary_key);
32symbol!(private);
33symbol!(public);
34symbol!(repr);
35symbol!(sats);
36symbol!(scheduled);
37symbol!(unique);
38
39impl PartialEq<Symbol> for syn::Ident {
40 fn eq(&self, sym: &Symbol) -> bool {
41 self == sym.0
42 }
43}
44impl PartialEq<Symbol> for &syn::Ident {
45 fn eq(&self, sym: &Symbol) -> bool {
46 *self == sym.0
47 }
48}
49impl PartialEq<Symbol> for syn::Path {
50 fn eq(&self, sym: &Symbol) -> bool {
51 self.is_ident(sym)
52 }
53}
54impl PartialEq<Symbol> for &syn::Path {
55 fn eq(&self, sym: &Symbol) -> bool {
56 self.is_ident(sym)
57 }
58}
59impl std::fmt::Display for Symbol {
60 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
61 f.write_str(self.0)
62 }
63}
64impl std::borrow::Borrow<str> for Symbol {
65 fn borrow(&self) -> &str {
66 self.0
67 }
68}