This is a wrapper around the OpenTriviaQA database. This library has the questions built into the binary (they are ~8mb), so it's useful where other trivia libraries cannot function (e.g. WASM).
// Create the context, loading all trivia questions. Here is also where you specify whether or not you would like questions to repeat themselves
let mut ctx = otqa::TriviaContext::new(false);
// Pick a question at random of a specified category. There are twenty to choose from.
let question = ctx.get_question(otqa::Category::Animals, otqa::Seeding::Random);
// If you wanted to pick a specific question (e.g. if you wanted a custom seeding algorithm), the syntax would look like this:
// let question = ctx.get_question(otqa::Category::Animals, otqa::Seeding::Specific(0));
// It will pick the question of that category at that index, applying a modulo should it overflow the amount of questions
// Here are all fields of questions
println!("{}", question.question);
println!("Category: {:?}", question.category);
for answer in question.answers {
println!("{}", answer);
}
println!("Correct answer: {}", question.correct_answer);