Sign in

    Ag108/MoonReduce/workspace/manifest does not have a README file

    Snapshot

    pub struct Snapshot {
    // private fields
    }

    Validated immutable portable project contents. No filesystem operations. Entries and bytes are copied at the public boundary.

    Snapshot::files

    fn Snapshot::files(self : Snapshot) -> Array[(String, Bytes)]

    Defensive copy in stable path order.

    Snapshot::key

    fn Snapshot::key(self : Snapshot) -> String

    Exact versioned content key, not a digest. Includes every path and byte; length framing prevents ambiguity. Evaluators must also key their config.

    Snapshot::new

    fn Snapshot::new(files : Array[(String, Bytes)]) -> Result[Snapshot, String]

    Canonicalize and sort paths, reject case collisions and file/directory conflicts. Limits: 1000 entries, 1 MiB/file, 64 KiB/mbt and 16 MiB total. Source files must contain strict UTF8; support files may be binary.

    Snapshot::remove

    fn Snapshot::remove(self : Snapshot, path : String) -> Result[Snapshot, String]

    Remove exactly one existing entry without mutating this snapshot.

    Snapshot::replace

    fn Snapshot::replace(self : Snapshot, path : String, bytes : Bytes) -> Result[Snapshot, String]

    Replace an existing entry, returning a newly validated snapshot.

    select

    fn select(snapshot : Snapshot, includes : Array[String], protects : Array[String], ignores : Array[String]) -> Result[Array[String], String]

    Sorted eligible mbt paths. Empty includes means **/*.mbt. Ignore/protect rules match files or ancestors and override includes. Documentation, script directories and Git metadata remain protected. This only selects mutation targets; it never removes ignored or protected support files from a snapshot. Invalid rules fail even when there are no files. At most 128 rules total.

    select_manifests

    fn select_manifests(snapshot : Snapshot, includes : Array[String], protects : Array[String], ignores : Array[String], include_root~ : Bool) -> Result[Array[String], String]

    Select manifest metadata for package deletion or explicitly enabled edits. Root metadata is eligible only when include_root is true. Includes and all default/user protection rules apply before any path becomes mutable.

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io