|
1 | 1 | mod deserialization; |
| 2 | +mod memo_network; |
2 | 3 |
|
3 | 4 | use super::document_metadata::{DocumentMetadata, LayerNodeIdentifier, NodeRelations}; |
4 | 5 | use super::misc::PTZ; |
@@ -26,7 +27,7 @@ use graphene_std::vector::{PointId, Vector, VectorModificationType}; |
26 | 27 | use interpreted_executor::dynamic_executor::ResolvedDocumentNodeTypes; |
27 | 28 | use interpreted_executor::node_registry::NODE_REGISTRY; |
28 | 29 | use kurbo::BezPath; |
29 | | -use private::MemoNetwork; |
| 30 | +use memo_network::MemoNetwork; |
30 | 31 | use serde_json::{Value, json}; |
31 | 32 | use std::collections::{HashMap, HashSet, VecDeque}; |
32 | 33 | use std::hash::{DefaultHasher, Hash, Hasher}; |
@@ -69,65 +70,6 @@ impl PartialEq for NodeNetworkInterface { |
69 | 70 | } |
70 | 71 | } |
71 | 72 |
|
72 | | -mod private { |
73 | | - use std::cell::RefCell; |
74 | | - use std::hash::{Hash, Hasher}; |
75 | | - |
76 | | - use graph_craft::document::NodeNetwork; |
77 | | - |
78 | | - #[derive(Debug, Default, Clone, PartialEq)] |
79 | | - pub struct MemoNetwork { |
80 | | - network: NodeNetwork, |
81 | | - hash_code: RefCell<Option<u64>>, |
82 | | - } |
83 | | - |
84 | | - impl<'de> serde::Deserialize<'de> for MemoNetwork { |
85 | | - fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> |
86 | | - where |
87 | | - D: serde::Deserializer<'de>, |
88 | | - { |
89 | | - Ok(Self::new(NodeNetwork::deserialize(deserializer)?)) |
90 | | - } |
91 | | - } |
92 | | - |
93 | | - impl serde::Serialize for MemoNetwork { |
94 | | - fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> |
95 | | - where |
96 | | - S: serde::Serializer, |
97 | | - { |
98 | | - self.network.serialize(serializer) |
99 | | - } |
100 | | - } |
101 | | - |
102 | | - impl Hash for MemoNetwork { |
103 | | - fn hash<H: Hasher>(&self, state: &mut H) { |
104 | | - self.current_hash().hash(state); |
105 | | - } |
106 | | - } |
107 | | - |
108 | | - impl MemoNetwork { |
109 | | - pub fn network(&self) -> &NodeNetwork { |
110 | | - &self.network |
111 | | - } |
112 | | - pub fn network_mut(&mut self) -> &mut NodeNetwork { |
113 | | - self.hash_code.replace(None); |
114 | | - &mut self.network |
115 | | - } |
116 | | - |
117 | | - pub fn new(network: NodeNetwork) -> Self { |
118 | | - Self { network, hash_code: None.into() } |
119 | | - } |
120 | | - |
121 | | - pub fn current_hash(&self) -> u64 { |
122 | | - let mut hash_code = self.hash_code.borrow_mut(); |
123 | | - if hash_code.is_none() { |
124 | | - *hash_code = Some(self.network.current_hash()); |
125 | | - } |
126 | | - hash_code.unwrap() |
127 | | - } |
128 | | - } |
129 | | -} |
130 | | - |
131 | 73 | impl NodeNetworkInterface { |
132 | 74 | /// Add DocumentNodePath input to the PathModifyNode protonode |
133 | 75 | pub fn migrate_path_modify_node(&mut self) { |
|
0 commit comments