vrl/compiler/category.rs
1use serde::{Deserialize, Serialize};
2use strum_macros::AsRefStr;
3
4/// Standard VRL function categories.
5///
6/// These categories are used to organize VRL standard library functions
7/// in documentation and tooling.
8#[derive(
9 Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize, AsRefStr,
10)]
11#[serde(rename_all = "PascalCase")]
12pub enum Category {
13 /// Array manipulation functions
14 Array,
15 /// Encoding and decoding functions
16 Codec,
17 /// Type coercion functions
18 Coerce,
19 /// Type conversion functions
20 Convert,
21 /// Debugging functions
22 Debug,
23 /// Enumeration and iteration functions
24 Enumerate,
25 /// Path manipulation functions
26 Path,
27 /// Cryptographic functions
28 Cryptography,
29 /// IP address functions
30 #[serde(rename = "IP")]
31 #[strum(serialize = "IP")]
32 Ip,
33 /// Mapping/distance related functions
34 Map,
35 /// Numeric functions
36 Number,
37 /// Object manipulation functions
38 Object,
39 /// Parsing functions
40 Parse,
41 /// Random value generation functions
42 Random,
43 /// String manipulation functions
44 String,
45 /// System functions
46 System,
47 /// Timestamp functions
48 Timestamp,
49 /// Type checking functions
50 Type,
51 /// Checksum functions
52 Checksum,
53}