mod.rs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. //! This module defines the instance snapshot subsystem of Rojo.
  2. //!
  3. //! It defines a way to define the instance tree of a project as a pure function
  4. //! of the filesystem by providing a lightweight instance 'snapshot' type, a
  5. //! method to generate minimal patches, and a method that applies those patches.
  6. //!
  7. //! The aim with this approach is to reduce the number of bugs that arise from
  8. //! attempting to manually update instances in response to filesystem updates.
  9. //! Instead of surgically identifying what needs to change, we can do rough
  10. //! "damage-painting", running our relatively fast snapshot function over
  11. //! anything that could have changed and running it through a diffing function
  12. //! to minimize the set of real changes.
  13. //!
  14. //! Building out a snapshot reconciler is mostly overkill for scripts, since
  15. //! their relationships are mostly simple and well-defined. It becomes very
  16. //! important, however, when dealing with large opaque model files and
  17. //! user-defined plugins.
  18. #![allow(dead_code)]
  19. mod instance_snapshot;
  20. mod metadata;
  21. mod patch;
  22. mod patch_apply;
  23. mod patch_compute;
  24. mod tree;
  25. pub use instance_snapshot::InstanceSnapshot;
  26. pub use metadata::*;
  27. pub use patch::*;
  28. pub use patch_apply::apply_patch_set;
  29. pub use patch_compute::compute_patch_set;
  30. pub use tree::*;