forked from rojo-rbx/rojo
32 lines
1.2 KiB
Rust
32 lines
1.2 KiB
Rust
//! This module defines the instance snapshot subsystem of Rojo.
|
|
//!
|
|
//! It defines a way to define the instance tree of a project as a pure function
|
|
//! of the filesystem by providing a lightweight instance 'snapshot' type, a
|
|
//! method to generate minimal patches, and a method that applies those patches.
|
|
//!
|
|
//! The aim with this approach is to reduce the number of bugs that arise from
|
|
//! attempting to manually update instances in response to filesystem updates.
|
|
//! Instead of surgically identifying what needs to change, we can do rough
|
|
//! "damage-painting", running our relatively fast snapshot function over
|
|
//! anything that could have changed and running it through a diffing function
|
|
//! to minimize the set of real changes.
|
|
//!
|
|
//! Building out a snapshot reconciler is mostly overkill for scripts, since
|
|
//! their relationships are mostly simple and well-defined. It becomes very
|
|
//! important, however, when dealing with large opaque model files and
|
|
//! user-defined plugins.
|
|
|
|
#![allow(dead_code)]
|
|
|
|
mod instance_snapshot;
|
|
mod metadata;
|
|
mod patch;
|
|
mod patch_apply;
|
|
mod patch_compute;
|
|
|
|
pub use instance_snapshot::InstanceSnapshot;
|
|
pub use metadata::*;
|
|
pub use patch::*;
|
|
pub use patch_apply::apply_patch_set;
|
|
pub use patch_compute::compute_patch_set;
|