use super::{ OptionFamily, OptionKind, OptionMetadata, OptionParser, OptionScope, OptionSource, OptionSpec, OptionStatus, OptionTag, TAG_ALIAS, TAG_GLOBAL, TAG_PER, }; /// Compatibility-extension entries layered onto the canonical compat registry. pub(super) const COMPATIBILITY_EXTENSION_ENTRIES: &[OptionSpec] = &[ OptionSpec { name: "pause", kind: OptionKind::Bool, default_value: "false", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["pause"], metadata: OptionMetadata { scope: OptionScope::PerDownload, family: OptionFamily::Core, parser: OptionParser::Boolean, tags: TAG_PER, validator: "bool", source_text: "aria2 option", compatibility_note: "start in paused state after registration", }, }, OptionSpec { name: "dry-run", kind: OptionKind::Bool, default_value: "false", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["dry-run"], metadata: OptionMetadata { scope: OptionScope::PerDownload, family: OptionFamily::Core, parser: OptionParser::Boolean, tags: TAG_PER, validator: "bool", source_text: "aria2 option", compatibility_note: "validate target reachability without committing download data", }, }, OptionSpec { name: "on-download-pause", kind: OptionKind::Text, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["on-download-pause"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Core, parser: OptionParser::Text, tags: TAG_GLOBAL, validator: "command string", source_text: "aria2 option", compatibility_note: "pause hook command", }, }, OptionSpec { name: "checksum", kind: OptionKind::Text, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["checksum"], metadata: OptionMetadata { scope: OptionScope::PerDownload, family: OptionFamily::Checksum, parser: OptionParser::KeyValue, tags: TAG_PER, validator: "TYPE=DIGEST", source_text: "aria2 option", compatibility_note: "expected file digest supplied at add time", }, }, OptionSpec { name: "select-file", kind: OptionKind::List, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["select-file"], metadata: OptionMetadata { scope: OptionScope::PerDownload, family: OptionFamily::Bt, parser: OptionParser::Csv, tags: &[OptionTag::Bt, OptionTag::PerDownloadOnly], validator: "torrent file indexes", source_text: "aria2 option", compatibility_note: "choose torrent file indexes or ranges to download", }, }, OptionSpec { name: "bt-remove-unselected-file", kind: OptionKind::Bool, default_value: "false", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["bt-remove-unselected-file"], metadata: OptionMetadata { scope: OptionScope::PerDownload, family: OptionFamily::Bt, parser: OptionParser::Boolean, tags: &[OptionTag::Bt, OptionTag::PerDownloadOnly], validator: "bool", source_text: "aria2 option", compatibility_note: "delete skipped torrent files when selection is active", }, }, OptionSpec { name: "metalink-base-uri", kind: OptionKind::Text, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["metalink-base-uri"], metadata: OptionMetadata { scope: OptionScope::PerDownload, family: OptionFamily::Metalink, parser: OptionParser::Text, tags: &[OptionTag::Metalink, OptionTag::PerDownloadOnly], validator: "any", source_text: "aria2 option", compatibility_note: "base URI used to resolve relative Metalink resources", }, }, OptionSpec { name: "remote-time", kind: OptionKind::Bool, default_value: "false", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &["R"], rpc_names: &["remote-time"], metadata: OptionMetadata { scope: OptionScope::Both, family: OptionFamily::Http, parser: OptionParser::Boolean, tags: &[], validator: "bool", source_text: "aria2 option", compatibility_note: "persist remote timestamp on the output file", }, }, OptionSpec { name: "rpc-user", kind: OptionKind::Text, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-user"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Text, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: "any", source_text: "aria2 option", compatibility_note: "legacy basic-auth rpc username", }, }, OptionSpec { name: "rpc-passwd", kind: OptionKind::Text, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-passwd"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Text, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: "any", source_text: "aria2 option", compatibility_note: "legacy basic-auth rpc password", }, }, OptionSpec { name: "rpc-max-request-size", kind: OptionKind::Size, default_value: "2M", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-max-request-size"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Size, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: ">=0", source_text: "aria2 option", compatibility_note: "maximum accepted rpc request payload size", }, }, OptionSpec { name: "rpc-allow-origin-all", kind: OptionKind::Bool, default_value: "false", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-allow-origin-all"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Boolean, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: "bool", source_text: "aria2 option", compatibility_note: "allow any origin for browser rpc access", }, }, OptionSpec { name: "rpc-certificate", kind: OptionKind::Path, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-certificate"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Path, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: "path", source_text: "aria2 option", compatibility_note: "tls certificate for secure rpc mode", }, }, OptionSpec { name: "rpc-private-key", kind: OptionKind::Path, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-private-key"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Path, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: "path", source_text: "aria2 option", compatibility_note: "tls private key for secure rpc mode", }, }, OptionSpec { name: "rpc-secure", kind: OptionKind::Bool, default_value: "false", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-secure"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Boolean, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: "bool", source_text: "aria2 option", compatibility_note: "serve rpc over tls", }, }, OptionSpec { name: "rpc-save-upload-metadata", kind: OptionKind::Bool, default_value: "true", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["rpc-save-upload-metadata"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Rpc, parser: OptionParser::Boolean, tags: &[OptionTag::Rpc, OptionTag::GlobalOnly], validator: "bool", source_text: "aria2 option", compatibility_note: "persist uploaded torrent or metalink metadata", }, }, OptionSpec { name: "input-file", kind: OptionKind::Path, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &["i"], rpc_names: &["input-file"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Input, parser: OptionParser::Path, tags: &[OptionTag::InputFile, OptionTag::GlobalOnly], validator: "existing path", source_text: "aria2 option", compatibility_note: "load uri list from file", }, }, OptionSpec { name: "save-session", kind: OptionKind::Path, default_value: "", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["save-session"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Session, parser: OptionParser::Path, tags: &[OptionTag::SessionFile, OptionTag::GlobalOnly], validator: "writable path", source_text: "aria2 option", compatibility_note: "save active tasks on exit", }, }, OptionSpec { name: "save-session-interval", kind: OptionKind::Duration, default_value: "0", source: OptionSource::Original, status: OptionStatus::Implemented, aliases: &[], rpc_names: &["save-session-interval"], metadata: OptionMetadata { scope: OptionScope::Global, family: OptionFamily::Session, parser: OptionParser::Duration, tags: &[OptionTag::SessionFile, OptionTag::GlobalOnly], validator: ">=0", source_text: "aria2 option", compatibility_note: "periodic session flush interval", }, }, OptionSpec { name: "no-want-digest-header", kind: OptionKind::Bool, default_value: "false", source: OptionSource::Pro, status: OptionStatus::Implemented, aliases: &["http-want-digest"], rpc_names: &["no-want-digest-header", "http-want-digest"], metadata: OptionMetadata { scope: OptionScope::Both, family: OptionFamily::Http, parser: OptionParser::Boolean, tags: TAG_ALIAS, validator: "bool", source_text: "aria2-rust-pro", compatibility_note: "compat switch for digest header behavior", }, }, ];