cmake_parser/doc/command/common/
source.rs1use cmake_parser_derive::CMake;
2
3use crate::Token;
4
5#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6#[cmake(pkg = "crate", transparent)]
7pub enum Source<'t> {
8 Sources(Vec<Token<'t>>),
9 SourceFromContent(SourceFromContent<'t>),
10 SourceFromVar(SourceFromVar<'t>),
11 SourceFromFile(SourceFromFile<'t>),
12}
13
14#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15#[cmake(pkg = "crate", positional)]
16pub struct SourceFromContent<'t> {
17 pub name: Token<'t>,
18 pub content: Token<'t>,
19}
20
21#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
22#[cmake(pkg = "crate", positional)]
23pub struct SourceFromVar<'t> {
24 pub name: Token<'t>,
25 pub var: Token<'t>,
26}
27
28#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
29#[cmake(pkg = "crate", positional)]
30pub struct SourceFromFile<'t> {
31 pub name: Token<'t>,
32 pub path: Token<'t>,
33}