Query 
Mantis provides type-safe database operations that map directly to V structs.
Notice
Mantis currently only supports SQLite databases.
Basic Usage 
v
module main
import khalyomede.mantis.database { Database, DatabaseConnection, DatabaseDriver }
// Define your data structure
struct Post {
  id int
  title string
  views u64
}
fn main() {
  mut db := Database{
    connection: DatabaseConnection{
      by_default: true
      driver: .sqlite
      database: 'blog.db'
    }
  }
  defer {
    db.close() or { panic(err) }
  }
  // Query all records with type safety
  posts := db.all[Post]('SELECT id, title, views FROM posts') or {
    panic(err)
  }
  for post in posts {
    println('${post.title} (${post.views} views)')
  }
}Running raw queries 
Use run() for INSERT, UPDATE, DELETE operations:
v
module main
import khalyomede.mantis.database { Database, DatabaseConnection }
fn main() {
  mut db := Database{
    connection: DatabaseConnection{
      by_default: true
      driver: .sqlite
      database: 'blog.db'
    }
  }
  // Create table
  db.run("
    CREATE TABLE IF NOT EXISTS posts (
      id INTEGER PRIMARY KEY,
      title TEXT,
      views INTEGER
    )
  ") or { panic(err) }
  // Insert data
  db.run("
    INSERT INTO posts (title, views)
    VALUES ('My First Post', 42)
  ") or {
    panic(err)
  }
}