nmd_core/compilable_text/
compilable_text_part.rs1use getset::{Getters, MutGetters, Setters};
2use serde::Serialize;
3use crate::codex::modifier::ModifiersBucket;
4
5
6#[derive(Debug, Clone, Serialize)]
7pub enum CompilableTextPartType {
8 Fixed,
9 Compilable{ incompatible_modifiers: ModifiersBucket },
10}
11
12#[derive(Debug, Getters, Setters, MutGetters, Clone, Serialize)]
13pub struct CompilableTextPart {
14
15 #[getset(get_mut = "pub", get = "pub", set = "pub")]
16 content: String,
17
18 #[getset(get = "pub", set = "pub")]
19 part_type: CompilableTextPartType,
20}
21
22impl CompilableTextPart {
23
24 pub fn new(content: String, part_type: CompilableTextPartType) -> Self {
25 Self {
26 content,
27 part_type,
28 }
29 }
30
31 pub fn new_fixed(content: String) -> Self {
32 Self::new(content, CompilableTextPartType::Fixed)
33 }
34
35 pub fn new_compilable(content: String, incompatible_modifiers: ModifiersBucket) -> Self {
36 Self::new(content, CompilableTextPartType::Compilable { incompatible_modifiers })
37 }
38}