Skip to main content

trellis_core/
graph_support.rs

1use crate::Graph;
2impl<C> Clone for Graph<C> {
3    fn clone(&self) -> Self {
4        Self {
5            next_node_id: self.next_node_id,
6            next_scope_id: self.next_scope_id,
7            next_output_key: self.next_output_key,
8            next_transaction_id: self.next_transaction_id,
9            revision: self.revision,
10            nodes: self.nodes.clone(),
11            scopes: self.scopes.clone(),
12            scope_children: self.scope_children.clone(),
13            input_values: self.input_values.clone(),
14            derived_specs: self.derived_specs.clone(),
15            derived_values: self.derived_values.clone(),
16            collection_specs: self.collection_specs.clone(),
17            collection_values: self.collection_values.clone(),
18            previous_collection_values: self.previous_collection_values.clone(),
19            collection_diffs: self.collection_diffs.clone(),
20            resource_planners: self.resource_planners.clone(),
21            resource_owners: self.resource_owners.clone(),
22            output_specs: self.output_specs.clone(),
23            output_values: self.output_values.clone(),
24            outputs: self.outputs.clone(),
25            topology_cache: self.topology_cache.clone(),
26            audit: self.audit.clone(),
27            transaction_open: self.transaction_open,
28        }
29    }
30}
31
32impl Graph<()> {
33    /// Creates an empty graph with no resource command payload type.
34    pub fn new() -> Self {
35        Self::new_with_command_type()
36    }
37}
38
39impl<C> Default for Graph<C> {
40    fn default() -> Self {
41        Self::new_with_command_type()
42    }
43}