]> git.proxmox.com Git - rustc.git/blame - vendor/serde_derive/src/internals/symbol.rs
New upstream version 1.51.0+dfsg1
[rustc.git] / vendor / serde_derive / src / internals / symbol.rs
CommitLineData
f9f354fc
XL
1use std::fmt::{self, Display};
2use syn::{Ident, Path};
3
4#[derive(Copy, Clone)]
5pub struct Symbol(&'static str);
6
7pub const ALIAS: Symbol = Symbol("alias");
8pub const BORROW: Symbol = Symbol("borrow");
9pub const BOUND: Symbol = Symbol("bound");
10pub const CONTENT: Symbol = Symbol("content");
11pub const CRATE: Symbol = Symbol("crate");
12pub const DEFAULT: Symbol = Symbol("default");
13pub const DENY_UNKNOWN_FIELDS: Symbol = Symbol("deny_unknown_fields");
14pub const DESERIALIZE: Symbol = Symbol("deserialize");
15pub const DESERIALIZE_WITH: Symbol = Symbol("deserialize_with");
16pub const FIELD_IDENTIFIER: Symbol = Symbol("field_identifier");
17pub const FLATTEN: Symbol = Symbol("flatten");
18pub const FROM: Symbol = Symbol("from");
19pub const GETTER: Symbol = Symbol("getter");
20pub const INTO: Symbol = Symbol("into");
21pub const OTHER: Symbol = Symbol("other");
22pub const REMOTE: Symbol = Symbol("remote");
23pub const RENAME: Symbol = Symbol("rename");
24pub const RENAME_ALL: Symbol = Symbol("rename_all");
25pub const SERDE: Symbol = Symbol("serde");
26pub const SERIALIZE: Symbol = Symbol("serialize");
27pub const SERIALIZE_WITH: Symbol = Symbol("serialize_with");
28pub const SKIP: Symbol = Symbol("skip");
29pub const SKIP_DESERIALIZING: Symbol = Symbol("skip_deserializing");
30pub const SKIP_SERIALIZING: Symbol = Symbol("skip_serializing");
31pub const SKIP_SERIALIZING_IF: Symbol = Symbol("skip_serializing_if");
32pub const TAG: Symbol = Symbol("tag");
33pub const TRANSPARENT: Symbol = Symbol("transparent");
34pub const TRY_FROM: Symbol = Symbol("try_from");
35pub const UNTAGGED: Symbol = Symbol("untagged");
36pub const VARIANT_IDENTIFIER: Symbol = Symbol("variant_identifier");
37pub const WITH: Symbol = Symbol("with");
5869c6ff 38pub const EXPECTING: Symbol = Symbol("expecting");
f9f354fc
XL
39
40impl PartialEq<Symbol> for Ident {
41 fn eq(&self, word: &Symbol) -> bool {
42 self == word.0
43 }
44}
45
46impl<'a> PartialEq<Symbol> for &'a Ident {
47 fn eq(&self, word: &Symbol) -> bool {
48 *self == word.0
49 }
50}
51
52impl PartialEq<Symbol> for Path {
53 fn eq(&self, word: &Symbol) -> bool {
54 self.is_ident(word.0)
55 }
56}
57
58impl<'a> PartialEq<Symbol> for &'a Path {
59 fn eq(&self, word: &Symbol) -> bool {
60 self.is_ident(word.0)
61 }
62}
63
64impl Display for Symbol {
65 fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
66 formatter.write_str(self.0)
67 }
68}