notionrs_schema/object/
language.rs

1use serde::{Deserialize, Serialize};
2
3/// The types of programming languages available can be found in the code of
4/// [the repository](https://github.com/makenotion/notion-sdk-js/blob/7950edc034d3007b0612b80d3f424baef89746d9/src/api-endpoints.ts#L5331),
5/// which is more up-to-date than the Notion API documentation.
6///
7/// Please look for the union type of the `type LanguageRequest` string in the codebase of `notion-sdk-js`.
8#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Default)]
9#[serde(rename_all = "snake_case")]
10pub enum Language {
11    #[serde(rename = "abap")]
12    Abap,
13    #[serde(rename = "agda")]
14    Agda,
15    #[serde(rename = "arduino")]
16    Arduino,
17    #[serde(rename = "ascii_art")]
18    AsciiArt,
19    #[serde(rename = "assembly")]
20    Assembly,
21    #[serde(rename = "bash")]
22    Bash,
23    #[serde(rename = "basic")]
24    Basic,
25    #[serde(rename = "bnf")]
26    Bnf,
27    #[serde(rename = "c")]
28    C,
29    #[serde(rename = "c#")]
30    CSharp,
31    #[serde(rename = "c++")]
32    CPlusPlus,
33    #[serde(rename = "clojure")]
34    Clojure,
35    #[serde(rename = "coffeescript")]
36    Coffeescript,
37    #[serde(rename = "coq")]
38    Coq,
39    #[serde(rename = "css")]
40    Css,
41    #[serde(rename = "dart")]
42    Dart,
43    #[serde(rename = "dhall")]
44    Dhall,
45    #[serde(rename = "diff")]
46    Diff,
47    #[serde(rename = "docker")]
48    Docker,
49    #[serde(rename = "ebnf")]
50    Ebnf,
51    #[serde(rename = "elixir")]
52    Elixir,
53    #[serde(rename = "elm")]
54    Elm,
55    #[serde(rename = "erlang")]
56    Erlang,
57    #[serde(rename = "f#")]
58    FSharp,
59    #[serde(rename = "flow")]
60    Flow,
61    #[serde(rename = "fortran")]
62    Fortran,
63    #[serde(rename = "gherkin")]
64    Gherkin,
65    #[serde(rename = "glsl")]
66    Glsl,
67    #[serde(rename = "go")]
68    Go,
69    #[serde(rename = "graphql")]
70    Graphql,
71    #[serde(rename = "groovy")]
72    Groovy,
73    #[serde(rename = "haskell")]
74    Haskell,
75    #[serde(rename = "hcl")]
76    Hcl,
77    #[serde(rename = "html")]
78    Html,
79    #[serde(rename = "idris")]
80    Idris,
81    #[serde(rename = "java")]
82    Java,
83    #[serde(rename = "javascript")]
84    Javascript,
85    #[serde(rename = "json")]
86    Json,
87    #[serde(rename = "julia")]
88    Julia,
89    #[serde(rename = "kotlin")]
90    Kotlin,
91    #[serde(rename = "latex")]
92    Latex,
93    #[serde(rename = "less")]
94    Less,
95    #[serde(rename = "lisp")]
96    Lisp,
97    #[serde(rename = "livescript")]
98    Livescript,
99    #[serde(rename = "llvm ir")]
100    LlvmIr,
101    #[serde(rename = "lua")]
102    Lua,
103    #[serde(rename = "makefile")]
104    Makefile,
105    #[serde(rename = "markdown")]
106    Markdown,
107    #[serde(rename = "markup")]
108    Markup,
109    #[serde(rename = "matlab")]
110    Matlab,
111    #[serde(rename = "mathematica")]
112    Mathematica,
113    #[serde(rename = "mermaid")]
114    Mermaid,
115    #[serde(rename = "nix")]
116    Nix,
117    #[serde(rename = "notion formula")]
118    NotionFormula,
119    #[serde(rename = "objective-c")]
120    ObjectiveC,
121    #[serde(rename = "ocaml")]
122    Ocaml,
123    #[serde(rename = "pascal")]
124    Pascal,
125    #[serde(rename = "perl")]
126    Perl,
127    #[serde(rename = "php")]
128    Php,
129    #[serde(rename = "plain text")]
130    #[default]
131    PlainText,
132    #[serde(rename = "powershell")]
133    Powershell,
134    #[serde(rename = "prolog")]
135    Prolog,
136    #[serde(rename = "protobuf")]
137    Protobuf,
138    #[serde(rename = "purescript")]
139    Purescript,
140    #[serde(rename = "python")]
141    Python,
142    #[serde(rename = "r")]
143    R,
144    #[serde(rename = "racket")]
145    Racket,
146    #[serde(rename = "reason")]
147    Reason,
148    #[serde(rename = "ruby")]
149    Ruby,
150    #[serde(rename = "rust")]
151    Rust,
152    #[serde(rename = "sass")]
153    Sass,
154    #[serde(rename = "scala")]
155    Scala,
156    #[serde(rename = "scheme")]
157    Scheme,
158    #[serde(rename = "scss")]
159    Scss,
160    #[serde(rename = "shell")]
161    Shell,
162    #[serde(rename = "smalltalk")]
163    Smalltalk,
164    #[serde(rename = "solidity")]
165    Solidity,
166    #[serde(rename = "sql")]
167    Sql,
168    #[serde(rename = "swift")]
169    Swift,
170    #[serde(rename = "toml")]
171    Toml,
172    #[serde(rename = "typescript")]
173    Typescript,
174    #[serde(rename = "vb.net")]
175    VbNet,
176    #[serde(rename = "verilog")]
177    Verilog,
178    #[serde(rename = "vhdl")]
179    Vhdl,
180    #[serde(rename = "visual basic")]
181    VisualBasic,
182    #[serde(rename = "webassembly")]
183    Webassembly,
184    #[serde(rename = "xml")]
185    Xml,
186    #[serde(rename = "yaml")]
187    Yaml,
188    #[serde(rename = "java/c/c++/c#")]
189    JavaCCPlusPlusCSharp,
190}
191
192impl std::str::FromStr for Language {
193    type Err = serde_plain::Error;
194    fn from_str(s: &str) -> Result<Self, Self::Err> {
195        serde_plain::from_str(s)
196    }
197}
198
199impl std::fmt::Display for Language {
200    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
201        serde_plain::to_string(self)
202            .map_err(|_| std::fmt::Error)?
203            .fmt(f)
204    }
205}