# Guide A quick tutorial to have a grasp of all asker's features. ## Intro Asker's main function is `asker::ask::ask`. It takes as argument a value of type `asker::ask::FieldSet`, which is an alias for a `Vec` consisting of the tuple type ```rust (name: &str, options: Vec<&str>, checker: Option) ``` The simplest example is: ```rust asker::ask::ask( vec![ ("name", vec![], None) ] ); ``` It asks for a field of value name, which will be displayed as `name:` to the user, and is not verified nor has any special property. There are three boolean options: - `hidden`, which will hide what the user types and instead show asterisks, - `confirm`, which will ask for the user to retype the field - `isbool`, which will ask the field as boolean (Y or N) There are also string options: - `default:thedefault`, which will use the value `thedefault` as default - `id:theid`, which sets the field entry in the HashMap (see return types below) to `theid` - `req:thereq`, which will display the text `thereq` to the user if the first field and the confirm field do not match. ## Validating user input The last value in the tuple is an `Option, HashMap