1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//! Package type definition.
use rez_next_version::Version;
use std::collections::HashMap;
/// High-performance package representation compatible with rez
#[derive(Debug, Clone, Default)]
pub struct Package {
/// Package name
pub name: String,
/// Package version
pub version: Option<Version>,
/// Package description
pub description: Option<String>,
/// Package authors
pub authors: Vec<String>,
/// Package requirements
pub requires: Vec<String>,
/// Build requirements
pub build_requires: Vec<String>,
/// Private build requirements
pub private_build_requires: Vec<String>,
/// Package variants
pub variants: Vec<Vec<String>>,
/// Package tools
pub tools: Vec<String>,
/// Package commands (rex script string, set from `def commands():` body)
pub commands: Option<String>,
/// Package commands function body (alias for commands; used by validation layer)
pub commands_function: Option<String>,
/// Build command for custom builds
pub build_command: Option<String>,
/// Build system type
pub build_system: Option<String>,
/// Pre commands (executed before main commands)
pub pre_commands: Option<String>,
/// Post commands (executed after main commands)
pub post_commands: Option<String>,
/// Pre test commands (executed before tests)
pub pre_test_commands: Option<String>,
/// Pre build commands (executed before build)
pub pre_build_commands: Option<String>,
/// Package tests
pub tests: HashMap<String, String>,
/// Required rez version
pub requires_rez_version: Option<String>,
/// Package UUID
pub uuid: Option<String>,
/// Package config
pub config: HashMap<String, String>,
/// Package help
pub help: Option<String>,
/// Package relocatable flag
pub relocatable: Option<bool>,
/// Package cachable flag
pub cachable: Option<bool>,
/// Package timestamp
pub timestamp: Option<i64>,
/// Package revision
pub revision: Option<String>,
/// Package changelog
pub changelog: Option<String>,
/// Package release message
pub release_message: Option<String>,
/// Previous version
pub previous_version: Option<Version>,
/// Previous revision
pub previous_revision: Option<String>,
/// VCS type
pub vcs: Option<String>,
/// Package format version
pub format_version: Option<i32>,
/// Package base
pub base: Option<String>,
/// Package has plugins
pub has_plugins: Option<bool>,
/// Plugin for packages
pub plugin_for: Vec<String>,
/// Package hashed variants
pub hashed_variants: Option<bool>,
/// Package preprocess function
pub preprocess: Option<String>,
/// Whether this is a developer package (loaded from a working directory)
pub is_dev_package: Option<bool>,
/// File path to the package definition file (package.py or package.yaml)
pub filepath: Option<String>,
/// Set of included Python modules (from @include decorators)
pub includes: Option<std::collections::HashSet<String>>,
}