README

vectie/moonleaf/opc does not have a README file

#
PackageError

pub(all) suberror PackageError {
InvalidPackage(String)
MissingPart(String)
InvalidTextPart(String)
} derive(Eq,
Debug
)

#
PackageError::to_string

fn PackageError::to_string(self : PackageError) -> String

#
ArchivePolicy

pub(all) struct ArchivePolicy {
max_compressed_input_bytes : Int
max_entries : Int
max_entry_compressed_bytes : Int
max_entry_uncompressed_bytes : Int
max_total_uncompressed_bytes : Int
max_compression_ratio : Int
max_path_depth : Int
max_path_length : Int
} derive(Eq,
Debug
)

Resource and path limits applied to one ZIP/OPC open.

These limits are enforced before extraction from central-directory metadata and checked again against the extracted entries. The dependency's own hard limits remain an additional ceiling.

#
ArchivePolicy::default

fn ArchivePolicy::default() -> ArchivePolicy

Conservative defaults for untrusted, in-memory OOXML opens.

The path length is measured in MoonBit string code units. Callers may use a stricter validated policy for a particular trust boundary.

#
ArchivePolicy::validate

fn ArchivePolicy::validate(self : ArchivePolicy) -> Unit raise PackageError

Reject internally inconsistent or non-positive limits.

#
Package

pub(all) struct Package {
parts : Array[Part]
} derive(Eq,
Debug
)

#
Package::has_part

fn Package::has_part(self : Package, name : String) -> Bool

#
Package::part

fn Package::part(self : Package, name : String) -> Part?

#
Package::relationships

fn Package::relationships(self : Package, source_part : String) -> Array[Relationship] raise PackageError

#
Package::replace_part

fn Package::replace_part(self : Package, name : String, content : FixedArray[Byte]) -> Package

#
Package::replace_text

fn Package::replace_text(self : Package, name : String, content : String) -> Package

#
Package::text

fn Package::text(self : Package, name : String) -> String raise PackageError

#
Part

pub(all) struct Part {
name : String
content : FixedArray[Byte]
} derive(Eq,
Debug
)

#
Relationship

pub(all) struct Relationship {
id : String
relationship_type : String
target : String
external : Bool
} derive(Eq,
Debug
)

#
normalize_part_name

fn normalize_part_name(name : String) -> String

#
open

fn open(content : FixedArray[Byte]) -> Package raise PackageError

#
open_with_policy

fn open_with_policy(content : FixedArray[Byte], policy : ArchivePolicy) -> Package raise PackageError

Open an OPC package using explicit, validated per-open archive limits.

ZIP central-directory metadata is checked before extraction, CRC verification is mandatory, and declared sizes are compared with extracted outputs before the package is returned.

#
relationships_part_name

fn relationships_part_name(source_part : String) -> String

#
resolve_target

fn resolve_target(source_part : String, target : String) -> String raise PackageError

#
save

fn save(archive : Package) -> FixedArray[Byte] raise PackageError

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io