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}