file-engine 2.0.0

Async, cross-platform file operations engine for desktop apps and developer tools: copy, move, sync, watch, and compress files with progress reporting and cancellation.
Documentation
[FE_SOURCE_NOT_FOUND]
template = "source not found: {path}"
hint = "Check that the source path exists before starting the operation."

[FE_DEST_EXISTS]
template = "destination already exists: {path}"
hint = "Pass `.overwrite(true)` if you intend to replace the destination."

[FE_CANCELLED]
template = "operation cancelled"

[FE_NO_SPACE]
template = "insufficient disk space: needed {needed} bytes, available {available} bytes"

[FE_PERMISSION_DENIED]
template = "permission denied: {path}"

[FE_IO]
template = "io error on {path}: {source}"

[FE_UNKNOWN_COMPRESS_FORMAT]
template = "could not infer compression format from destination: {path}"
hint = "Pass `.format(...)` explicitly, or use a `.zip`/`.gz` extension."

[FE_GZIP_REQUIRES_FILE]
template = "gzip compression requires a single file, got a directory: {path}"
hint = "Use `.format(CompressFormat::Zip)` to compress a directory."

[FE_CASE_COLLISION]
template = "filename differs only by case from another entry, which the destination filesystem cannot represent: {path} collides with {other}"

[FE_FILE_TOO_LARGE_FOR_DEST]
template = "file exceeds the destination filesystem's maximum file size: {path} ({size} bytes, max {max} bytes)"

[FE_RESERVED_NAME]
template = "filename is reserved or invalid on the destination filesystem: {path}"

[FE_FILESYSTEM_INTEGRITY_RISK]
template = "destination filesystem ({filesystem}) has a known write-integrity issue on this platform"
hint = "Pass `.allow_filesystem_integrity_risk(true)` to proceed anyway."