Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removed InstanceSnapshot snapshot_id's redudant Ref. #730

Merged
merged 1 commit into from
Jul 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions src/snapshot/instance_snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ use super::InstanceMetadata;
// - Replace use of Variant with a sum of Variant + borrowed value
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct InstanceSnapshot {
// FIXME: Don't use Option<Ref> anymore!
/// A temporary ID applied to the snapshot that's used for Ref properties.
pub snapshot_id: Option<Ref>,
pub snapshot_id: Ref,

/// Rojo-specific metadata associated with the instance.
pub metadata: InstanceMetadata,
Expand All @@ -42,7 +41,7 @@ pub struct InstanceSnapshot {
impl InstanceSnapshot {
pub fn new() -> Self {
Self {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: InstanceMetadata::default(),
name: Cow::Borrowed("DEFAULT"),
class_name: Cow::Borrowed("DEFAULT"),
Expand Down Expand Up @@ -88,7 +87,7 @@ impl InstanceSnapshot {
}
}

pub fn snapshot_id(self, snapshot_id: Option<Ref>) -> Self {
pub fn snapshot_id(self, snapshot_id: Ref) -> Self {
Self {
snapshot_id,
..self
Expand Down Expand Up @@ -120,7 +119,7 @@ impl InstanceSnapshot {
.collect();

Self {
snapshot_id: Some(id),
snapshot_id: id,
metadata: InstanceMetadata::default(),
name: Cow::Owned(instance.name),
class_name: Cow::Owned(instance.class),
Expand Down
4 changes: 2 additions & 2 deletions src/snapshot/patch_apply.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ fn apply_add_child(
context.has_refs_to_rewrite.insert(id);
}

if let Some(snapshot_id) = snapshot_id {
if snapshot_id.is_some() {
context.snapshot_id_to_instance_id.insert(snapshot_id, id);
}

Expand Down Expand Up @@ -231,7 +231,7 @@ mod test {
let root_id = tree.get_root_id();

let snapshot = InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("Foo"),
class_name: Cow::Borrowed("Bar"),
Expand Down
14 changes: 8 additions & 6 deletions src/snapshot/patch_compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,10 @@ fn compute_patch_set_internal(
id: Ref,
patch_set: &mut PatchSet,
) {
if let Some(snapshot_id) = snapshot.snapshot_id {
context.snapshot_id_to_instance_id.insert(snapshot_id, id);
if snapshot.snapshot_id.is_some() {
context
.snapshot_id_to_instance_id
.insert(snapshot.snapshot_id, id);
}

let instance = tree
Expand Down Expand Up @@ -244,7 +246,7 @@ mod test {
// addition of a prop named Self, which is a self-referential Ref.
let snapshot_id = Ref::new();
let snapshot = InstanceSnapshot {
snapshot_id: Some(snapshot_id),
snapshot_id: snapshot_id,
properties: hashmap! {
"Self".to_owned() => Variant::Ref(snapshot_id),
},
Expand Down Expand Up @@ -286,13 +288,13 @@ mod test {
// This patch describes the existing instance with a new child added.
let snapshot_id = Ref::new();
let snapshot = InstanceSnapshot {
snapshot_id: Some(snapshot_id),
snapshot_id: snapshot_id,
children: vec![InstanceSnapshot {
properties: hashmap! {
"Self".to_owned() => Variant::Ref(snapshot_id),
},

snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("child"),
class_name: Cow::Borrowed("child"),
Expand All @@ -311,7 +313,7 @@ mod test {
added_instances: vec![PatchAdd {
parent_id: root_id,
instance: InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
properties: hashmap! {
"Self".to_owned() => Variant::Ref(root_id),
Expand Down
13 changes: 7 additions & 6 deletions src/snapshot/tests/compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use std::borrow::Cow;
use insta::assert_yaml_snapshot;
use maplit::hashmap;

use rbx_dom_weak::types::Ref;
use rojo_insta_ext::RedactionMap;

use crate::snapshot::{compute_patch_set, InstanceSnapshot, RojoTree};
Expand All @@ -15,7 +16,7 @@ fn set_name_and_class_name() {
redactions.intern(tree.get_root_id());

let snapshot = InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("Some Folder"),
class_name: Cow::Borrowed("Folder"),
Expand All @@ -37,7 +38,7 @@ fn set_property() {
redactions.intern(tree.get_root_id());

let snapshot = InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("ROOT"),
class_name: Cow::Borrowed("ROOT"),
Expand Down Expand Up @@ -70,7 +71,7 @@ fn remove_property() {
}

let snapshot = InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("ROOT"),
class_name: Cow::Borrowed("ROOT"),
Expand All @@ -92,13 +93,13 @@ fn add_child() {
redactions.intern(tree.get_root_id());

let snapshot = InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("ROOT"),
class_name: Cow::Borrowed("ROOT"),
properties: Default::default(),
children: vec![InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("New"),
class_name: Cow::Borrowed("Folder"),
Expand Down Expand Up @@ -131,7 +132,7 @@ fn remove_child() {
}

let snapshot = InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Borrowed("ROOT"),
class_name: Cow::Borrowed("ROOT"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ removed_instances: []
added_instances:
- parent_id: id-1
instance:
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
relevant_paths: []
Expand All @@ -16,3 +16,4 @@ added_instances:
properties: {}
children: []
updated_instances: []

4 changes: 2 additions & 2 deletions src/snapshot_middleware/json_model.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::{borrow::Cow, collections::HashMap, path::Path, str};

use anyhow::Context;
use memofs::Vfs;
use rbx_dom_weak::types::Attributes;
use rbx_dom_weak::types::{Attributes, Ref};
use serde::Deserialize;

use crate::{
Expand Down Expand Up @@ -112,7 +112,7 @@ impl JsonModel {
}

Ok(InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
metadata: Default::default(),
name: Cow::Owned(name),
class_name: Cow::Owned(class_name),
Expand Down
4 changes: 2 additions & 2 deletions src/snapshot_middleware/project.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::{borrow::Cow, collections::HashMap, path::Path};

use anyhow::{bail, Context};
use memofs::Vfs;
use rbx_dom_weak::types::Attributes;
use rbx_dom_weak::types::{Attributes, Ref};
use rbx_reflection::ClassTag;

use crate::{
Expand Down Expand Up @@ -271,7 +271,7 @@ pub fn snapshot_project_node(
));

Ok(Some(InstanceSnapshot {
snapshot_id: None,
snapshot_id: Ref::none(),
name,
class_name,
properties,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/csv.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/csv.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: true
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/dir.rs
assertion_line: 127
expression: instance_snapshot
---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/dir.rs
assertion_line: 148
expression: instance_snapshot
---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand All @@ -23,7 +22,7 @@ name: foo
class_name: Folder
properties: {}
children:
- snapshot_id: ~
- snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/json.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/json_model.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand All @@ -17,7 +16,7 @@ properties:
Value:
Int64: 5
children:
- snapshot_id: ~
- snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
relevant_paths: []
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/json_model.rs
assertion_line: 186
expression: instance_snapshot
---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand All @@ -17,7 +16,7 @@ properties:
Value:
Int64: 5
children:
- snapshot_id: ~
- snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
relevant_paths: []
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/lua.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/lua.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/lua.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: true
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/lua.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/lua.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: true
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
source: src/snapshot_middleware/lua.rs
expression: instance_snapshot

---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: false
instigating_source:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
source: src/snapshot_middleware/project.rs
expression: instance_snapshot
---
snapshot_id: ~
snapshot_id: "00000000000000000000000000000000"
metadata:
ignore_unknown_instances: true
instigating_source:
Expand All @@ -14,3 +14,4 @@ name: direct-project
class_name: Model
properties: {}
children: []

Loading