use crate::command_options::{Arity, OptionSpec, ParseMode, UNREAD, row};
pub const GLOBAL: u16 = 1;
pub const SYSTEM: u16 = 2;
pub const LIST: u16 = 3;
pub const LOCATION_ROWS: &[OptionSpec] = &[
row(GLOBAL, None, Some("global"), Arity::None, true),
row(SYSTEM, None, Some("system"), Arity::None, true),
row(UNREAD, None, Some("local"), Arity::None, true),
row(UNREAD, None, Some("worktree"), Arity::None, true),
row(UNREAD, Some(b'f'), Some("file"), Arity::Required, true),
row(UNREAD, None, Some("blob"), Arity::Required, true),
];
pub const TYPE_ROWS: &[OptionSpec] = &[
row(UNREAD, Some(b't'), Some("type"), Arity::Required, true),
row(UNREAD, None, Some("bool"), Arity::None, false),
row(UNREAD, None, Some("int"), Arity::None, false),
row(UNREAD, None, Some("bool-or-int"), Arity::None, false),
row(UNREAD, None, Some("bool-or-str"), Arity::None, false),
row(UNREAD, None, Some("path"), Arity::None, false),
row(UNREAD, None, Some("expiry-date"), Arity::None, false),
];
pub const DISPLAY_ROWS: &[OptionSpec] = &[
row(UNREAD, Some(b'z'), Some("null"), Arity::None, true),
row(UNREAD, None, Some("name-only"), Arity::None, true),
row(UNREAD, None, Some("show-origin"), Arity::None, true),
row(UNREAD, None, Some("show-scope"), Arity::None, true),
row(UNREAD, None, Some("show-names"), Arity::None, true),
];
pub const LIST_OTHER_ROWS: &[OptionSpec] =
&[row(UNREAD, None, Some("includes"), Arity::None, true)];
pub const GET_FILTER_ROWS: &[OptionSpec] = &[
row(UNREAD, None, Some("all"), Arity::None, true),
row(UNREAD, None, Some("regexp"), Arity::None, true),
row(UNREAD, None, Some("value"), Arity::Required, true),
row(UNREAD, None, Some("fixed-value"), Arity::None, true),
row(UNREAD, None, Some("url"), Arity::Required, true),
];
pub const GET_OTHER_ROWS: &[OptionSpec] = &[
row(UNREAD, None, Some("includes"), Arity::None, true),
row(UNREAD, None, Some("default"), Arity::Required, true),
];
pub const SET_ROWS: &[OptionSpec] = &[
row(UNREAD, None, Some("all"), Arity::None, true),
row(UNREAD, None, Some("value"), Arity::Required, true),
row(UNREAD, None, Some("fixed-value"), Arity::None, true),
row(UNREAD, None, Some("comment"), Arity::Required, true),
row(UNREAD, None, Some("append"), Arity::None, true),
];
pub const UNSET_ROWS: &[OptionSpec] = &[
row(UNREAD, None, Some("all"), Arity::None, true),
row(UNREAD, None, Some("value"), Arity::Required, true),
row(UNREAD, None, Some("fixed-value"), Arity::None, true),
];
pub const LEGACY_ACTION_ROWS: &[OptionSpec] = &[
row(UNREAD, None, Some("get"), Arity::None, false),
row(UNREAD, None, Some("get-all"), Arity::None, false),
row(UNREAD, None, Some("get-regexp"), Arity::None, false),
row(UNREAD, None, Some("get-urlmatch"), Arity::None, false),
row(UNREAD, None, Some("replace-all"), Arity::None, false),
row(UNREAD, None, Some("add"), Arity::None, false),
row(UNREAD, None, Some("unset"), Arity::None, false),
row(UNREAD, None, Some("unset-all"), Arity::None, false),
row(UNREAD, None, Some("rename-section"), Arity::None, false),
row(UNREAD, None, Some("remove-section"), Arity::None, false),
row(LIST, Some(b'l'), Some("list"), Arity::None, false),
row(UNREAD, Some(b'e'), Some("edit"), Arity::None, false),
row(UNREAD, None, Some("get-color"), Arity::None, false),
row(UNREAD, None, Some("get-colorbool"), Arity::None, false),
];
pub const LEGACY_OTHER_ROWS: &[OptionSpec] = &[
row(UNREAD, None, Some("default"), Arity::Required, true),
row(UNREAD, None, Some("comment"), Arity::Required, true),
row(UNREAD, None, Some("fixed-value"), Arity::None, true),
row(UNREAD, None, Some("includes"), Arity::None, true),
];
pub const CONFIG_STOP_MODE: ParseMode = ParseMode {
keep_unknown: false,
stop_at_non_option: true,
};