mirror of
git://git.proxmox.com/git/pxar.git
synced 2025-01-03 09:17:38 +03:00
d3447d0149
Introduces the header type `PXAR_PAYLOAD_REF` to mark regular file entry payloads, not encoded within the regular pxar archive but rather redirected to a dedicated payload output writer. It therefore substitutes the `PXAR_PAYLOAD` header type for these entries. The header marks the start and size for a `PayloadRef` typed object in the archive, storing the offset to the payload header offset in the payload stream of the dedicated payload output as well as the payload size. The `PayloadRef` provides the means to store, serialize and deserialize the entry. Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
74 lines
2.2 KiB
Rust
74 lines
2.2 KiB
Rust
use pxar::format::hash_filename;
|
|
|
|
const CONSTANTS: &[(&str, &str, &str)] = &[
|
|
(
|
|
"Beginning of an entry (current version).",
|
|
"PXAR_ENTRY",
|
|
"__PROXMOX_FORMAT_ENTRY_V2__",
|
|
),
|
|
(
|
|
"Previous version of the entry struct",
|
|
"PXAR_ENTRY_V1",
|
|
"__PROXMOX_FORMAT_ENTRY__",
|
|
),
|
|
("", "PXAR_FILENAME", "__PROXMOX_FORMAT_FILENAME__"),
|
|
("", "PXAR_SYMLINK", "__PROXMOX_FORMAT_SYMLINK__"),
|
|
("", "PXAR_DEVICE", "__PROXMOX_FORMAT_DEVICE__"),
|
|
("", "PXAR_XATTR", "__PROXMOX_FORMAT_XATTR__"),
|
|
("", "PXAR_ACL_USER", "__PROXMOX_FORMAT_ACL_USER__"),
|
|
("", "PXAR_ACL_GROUP", "__PROXMOX_FORMAT_ACL_GROUP__"),
|
|
("", "PXAR_ACL_GROUP_OBJ", "__PROXMOX_FORMAT_ACL_GROUP_OBJ__"),
|
|
("", "PXAR_ACL_DEFAULT", "__PROXMOX_FORMAT_ACL_DEFAULT__"),
|
|
(
|
|
"",
|
|
"PXAR_ACL_DEFAULT_USER",
|
|
"__PROXMOX_FORMAT_ACL_DEFAULT_USER__",
|
|
),
|
|
(
|
|
"",
|
|
"PXAR_ACL_DEFAULT_GROUP",
|
|
"__PROXMOX_FORMAT_ACL_DEFAULT_GROUP__",
|
|
),
|
|
("", "PXAR_FCAPS", "__PROXMOX_FORMAT_FCAPS__"),
|
|
("", "PXAR_QUOTA_PROJID", "__PROXMOX_FORMAT_QUOTA_PROJID__"),
|
|
(
|
|
"Marks item as hardlink",
|
|
"PXAR_HARDLINK",
|
|
"__PROXMOX_FORMAT_HARDLINK__",
|
|
),
|
|
(
|
|
"Marks the beginning of the payload (actual content) of regular files",
|
|
"PXAR_PAYLOAD",
|
|
"__PROXMOX_FORMAT_PXAR_PAYLOAD__",
|
|
),
|
|
(
|
|
"Marks the beginning of a payload reference for regular files",
|
|
"PXAR_PAYLOAD_REF",
|
|
"__PROXMOX_FORMAT_PXAR_PAYLOAD_REF__",
|
|
),
|
|
(
|
|
"Marks item as entry of goodbye table",
|
|
"PXAR_GOODBYE",
|
|
"__PROXMOX_FORMAT_GOODBYE__",
|
|
),
|
|
(
|
|
"The end marker used in the GOODBYE object",
|
|
"PXAR_GOODBYE_TAIL_MARKER",
|
|
"__PROXMOX_FORMAT_PXAR_GOODBYE_TAIL_MARKER__",
|
|
),
|
|
];
|
|
|
|
fn main() {
|
|
println!("// Generated by `cargo run --example mk-format-hashes`");
|
|
for constant in CONSTANTS {
|
|
if !constant.0.is_empty() {
|
|
println!("/// {}", constant.0);
|
|
}
|
|
println!(
|
|
"pub const {}: u64 = 0x{:016x};",
|
|
constant.1,
|
|
hash_filename(constant.2.as_bytes()),
|
|
)
|
|
}
|
|
}
|