cmake_parser/doc/command/scripting/
message.rs1use cmake_parser_derive::CMake;
2
3use crate::{
4 doc::command_scope::{CommandScope, ToCommandScope},
5 Token,
6};
7
8#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12#[cmake(pkg = "crate", untagged)]
13pub enum Message<'t> {
14 ReportingChecks(MessageReportingChecks<'t>),
15 #[cmake(transparent)]
16 ConfigureLog(Vec<Token<'t>>),
17 General(MessageGeneral<'t>),
18}
19
20impl<'t> ToCommandScope for Message<'t> {
21 fn to_command_scope(&self) -> CommandScope {
22 CommandScope::Scripting
23 }
24}
25
26#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
27#[cmake(pkg = "crate", untagged)]
28pub enum MessageGeneral<'t> {
29 #[cmake(transparent)]
30 FatalError(Vec<Token<'t>>),
31 #[cmake(transparent)]
32 SendError(Vec<Token<'t>>),
33 #[cmake(transparent)]
34 Warning(Vec<Token<'t>>),
35 #[cmake(transparent)]
36 AuthorWarning(Vec<Token<'t>>),
37 #[cmake(transparent)]
38 Deprecation(Vec<Token<'t>>),
39 #[cmake(transparent)]
40 Notice(Vec<Token<'t>>),
41 #[cmake(transparent)]
42 Status(Vec<Token<'t>>),
43 #[cmake(transparent)]
44 Verbose(Vec<Token<'t>>),
45 #[cmake(transparent)]
46 Debug(Vec<Token<'t>>),
47 #[cmake(transparent)]
48 Trace(Vec<Token<'t>>),
49 NoticeDefault(Vec<Token<'t>>),
51}
52
53#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
54#[cmake(pkg = "crate", untagged, transparent)]
55pub enum MessageReportingChecks<'t> {
56 CheckStart(Vec<Token<'t>>),
57 CheckPass(Vec<Token<'t>>),
58 CheckFail(Vec<Token<'t>>),
59}
60
61#[cfg(test)]
62mod tests {
63 use super::*;
64 use crate::doc::cmake_parse::tests::quoted_tokens_vec;
65 use crate::*;
66 use pretty_assertions::assert_eq;
67
68 #[test]
69 fn message() {
70 let src = include_bytes!("../../../../../fixture/commands/scripting/message");
71 let cmakelists = parse_cmakelists(src).unwrap();
72 let doc = Doc::from(cmakelists);
73 assert_eq!(
74 doc.to_commands_iter().collect::<Vec<_>>(),
75 vec![
76 Ok(Command::Message(Box::new(Message::General(
77 MessageGeneral::FatalError(quoted_tokens_vec([b"msg1"]))
78 )))),
79 Ok(Command::Message(Box::new(Message::General(
80 MessageGeneral::SendError(quoted_tokens_vec([b"msg1"]))
81 )))),
82 Ok(Command::Message(Box::new(Message::General(
83 MessageGeneral::Warning(quoted_tokens_vec([b"msg1"]))
84 )))),
85 Ok(Command::Message(Box::new(Message::General(
86 MessageGeneral::AuthorWarning(quoted_tokens_vec([b"msg1"]))
87 )))),
88 Ok(Command::Message(Box::new(Message::General(
89 MessageGeneral::Deprecation(quoted_tokens_vec([b"msg1"]))
90 )))),
91 Ok(Command::Message(Box::new(Message::General(
92 MessageGeneral::Notice(quoted_tokens_vec([b"msg1"]))
93 )))),
94 Ok(Command::Message(Box::new(Message::General(
95 MessageGeneral::Status(quoted_tokens_vec([b"msg1"]))
96 )))),
97 Ok(Command::Message(Box::new(Message::General(
98 MessageGeneral::Verbose(quoted_tokens_vec([b"msg1"]))
99 )))),
100 Ok(Command::Message(Box::new(Message::General(
101 MessageGeneral::Debug(quoted_tokens_vec([b"msg1"]))
102 )))),
103 Ok(Command::Message(Box::new(Message::General(
104 MessageGeneral::Trace(quoted_tokens_vec([b"msg1"]))
105 )))),
106 Ok(Command::Message(Box::new(Message::General(
107 MessageGeneral::NoticeDefault(quoted_tokens_vec([b"msg1"]))
108 )))),
109 Ok(Command::Message(Box::new(Message::ReportingChecks(
110 MessageReportingChecks::CheckStart(quoted_tokens_vec([b"msg1"]))
111 )))),
112 Ok(Command::Message(Box::new(Message::ReportingChecks(
113 MessageReportingChecks::CheckPass(quoted_tokens_vec([b"msg1"]))
114 )))),
115 Ok(Command::Message(Box::new(Message::ReportingChecks(
116 MessageReportingChecks::CheckFail(quoted_tokens_vec([b"msg1"]))
117 )))),
118 Ok(Command::Message(Box::new(Message::ConfigureLog(
119 quoted_tokens_vec([b"msg1"])
120 )))),
121 ]
122 )
123 }
124}