use super::prelude::*;
pub const BLOCK_RADIO: BlockRule = BlockRule {
name: "block-radio",
accepts_names: &["radio", "radio-button"],
accepts_special: true,
accepts_newlines: false,
parse_fn,
};
fn parse_fn<'r, 't>(
log: &slog::Logger,
parser: &mut Parser<'r, 't>,
name: &'t str,
special: bool,
in_head: bool,
) -> ParseResult<'r, 't, Elements<'t>> {
debug!(
log,
"Parsing radio button block";
"in-head" => in_head,
"name" => name,
"special" => special,
);
assert_block_name(&BLOCK_RADIO, name);
let (name, arguments) = parser.get_head_name_map(&BLOCK_RADIO, in_head)?;
parser.get_optional_space()?;
let element = Element::RadioButton {
name: cow!(name),
checked: special,
attributes: arguments.to_hash_map(),
};
ok!(element)
}