Skip to main content

molframe_core/structure/
mod.rs

1//! The normalised structure, the views over it, and the invariants it holds.
2//!
3//! A structure is immutable and shared by reference; editing produces a new one.
4//! That is what makes handing out a pointer to the coordinates safe, and it is
5//! why a view keeps working after the structure it came from has been superseded
6//! — it holds its own reference to the snapshot it was made against.
7
8#[cfg(test)]
9mod fixture;
10
11mod chain_labels;
12mod data;
13mod diff;
14mod disorder;
15mod disorder_checked;
16mod edit;
17mod ensemble;
18mod extensions;
19#[cfg(test)]
20mod extensions_tests;
21mod handle;
22mod handle_lookup;
23mod label_rewrites;
24mod materialize;
25mod merge;
26mod merge_annotations;
27mod overlay;
28mod sequence;
29mod validate;
30mod view;
31
32pub use data::{CoordinateStore, EntryMetadata, Structure, StructureData, UnitCell};
33pub use diff::{
34    CountDifference, DifferenceError, MetadataDifference, StructureDifference,
35    StructureDifferenceOptions, ValueDifference, structure_difference,
36};
37pub use disorder::{altloc_compatible, compatible_pairs};
38pub use edit::CoordinateEditor;
39pub use ensemble::EnsembleBlock;
40pub use extensions::ExtensionStore;
41pub use handle::{AtomRef, ChainRef, ModelRef, ResidueRef};
42pub use label_rewrites::LabelRewrites;
43pub use overlay::StructureEditor;
44pub use sequence::{
45    ChainSequenceExt, MissingResidue, ReferenceAlignment, ReferenceSequence,
46    SEQUENCE_REFERENCES_EXTENSION, SequenceMapping, SequenceReferences,
47};
48pub use validate::validate;
49pub(crate) use validate::validate_coordinate_edit;
50pub use view::StructureView;