Skip to main content

parse_ask

Function parse_ask 

Source
pub fn parse_ask(block: &AttributeBlock) -> Vec<AskDirective>
Expand description

Parse an +ASK block into its directives, in order.

use gopher_protocol::plus::{AskDirective, parse_attributes, parse_ask};

let blocks = parse_attributes("+ASK:\n Ask: How many volts?\n Choose: Deliver shock?\tYes\tNo\n");
let form = parse_ask(&blocks[0]);

assert!(matches!(&form[0], AskDirective::Ask { prompt, .. } if prompt == "How many volts?"));
match &form[1] {
    AskDirective::Choose { options, .. } => assert_eq!(options, &["Yes", "No"]),
    other => panic!("expected a Choose, got {other:?}"),
}