aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/builder/literal_argument_builder.rs
blob: c55fbeed000f022aa04a159a085a5523d08fe913 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use super::argument_builder::{ArgumentBuilder, ArgumentBuilderType};

#[derive(Clone, Debug, Default)]
pub struct Literal {
    pub value: String,
}
impl Literal {
    pub fn new(value: &str) -> Self {
        Self {
            value: value.to_owned(),
        }
    }
}

impl<S, R> From<Literal> for ArgumentBuilderType<S, R> {
    fn from(literal: Literal) -> Self {
        Self::Literal(literal)
    }
}

/// Shortcut for creating a new literal builder node.
pub fn literal<S, R>(value: &str) -> ArgumentBuilder<S, R> {
    ArgumentBuilder::new(ArgumentBuilderType::Literal(Literal::new(value)))
}