Skip to content

Commit c3260b6

Browse files
committed
Cleanup
1 parent 4b8513f commit c3260b6

File tree

2 files changed

+59
-60
lines changed

2 files changed

+59
-60
lines changed

editor/src/messages/portfolio/document/utility_types/network_interface.rs

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
mod deserialization;
2+
mod memo_network;
23

34
use super::document_metadata::{DocumentMetadata, LayerNodeIdentifier, NodeRelations};
45
use super::misc::PTZ;
@@ -26,7 +27,7 @@ use graphene_std::vector::{PointId, Vector, VectorModificationType};
2627
use interpreted_executor::dynamic_executor::ResolvedDocumentNodeTypes;
2728
use interpreted_executor::node_registry::NODE_REGISTRY;
2829
use kurbo::BezPath;
29-
use private::MemoNetwork;
30+
use memo_network::MemoNetwork;
3031
use serde_json::{Value, json};
3132
use std::collections::{HashMap, HashSet, VecDeque};
3233
use std::hash::{DefaultHasher, Hash, Hasher};
@@ -69,65 +70,6 @@ impl PartialEq for NodeNetworkInterface {
6970
}
7071
}
7172

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-
13173
impl NodeNetworkInterface {
13274
/// Add DocumentNodePath input to the PathModifyNode protonode
13375
pub fn migrate_path_modify_node(&mut self) {
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
use graph_craft::document::NodeNetwork;
2+
use std::cell::Cell;
3+
use std::hash::{Hash, Hasher};
4+
5+
#[derive(Debug, Default, Clone, PartialEq)]
6+
pub struct MemoNetwork {
7+
network: NodeNetwork,
8+
hash_code: Cell<Option<u64>>,
9+
}
10+
11+
impl<'de> serde::Deserialize<'de> for MemoNetwork {
12+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
13+
where
14+
D: serde::Deserializer<'de>,
15+
{
16+
Ok(Self::new(NodeNetwork::deserialize(deserializer)?))
17+
}
18+
}
19+
20+
impl serde::Serialize for MemoNetwork {
21+
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
22+
where
23+
S: serde::Serializer,
24+
{
25+
self.network.serialize(serializer)
26+
}
27+
}
28+
29+
impl Hash for MemoNetwork {
30+
fn hash<H: Hasher>(&self, state: &mut H) {
31+
self.current_hash().hash(state);
32+
}
33+
}
34+
35+
impl MemoNetwork {
36+
pub fn network(&self) -> &NodeNetwork {
37+
&self.network
38+
}
39+
40+
pub fn network_mut(&mut self) -> &mut NodeNetwork {
41+
self.hash_code.set(None);
42+
&mut self.network
43+
}
44+
45+
pub fn new(network: NodeNetwork) -> Self {
46+
Self { network, hash_code: None.into() }
47+
}
48+
49+
pub fn current_hash(&self) -> u64 {
50+
let mut hash_code = self.hash_code.get();
51+
if hash_code.is_none() {
52+
hash_code = Some(self.network.current_hash());
53+
self.hash_code.set(hash_code);
54+
}
55+
hash_code.unwrap()
56+
}
57+
}

0 commit comments

Comments
 (0)