module main import vweb import time import os struct App { vweb.Context vweb.Controller } struct Admin { vweb.Context } ['/admin/duplicate'] pub fn (mut app App) duplicate() vweb.Result { return app.text('duplicate') } fn exit_after_timeout(timeout_in_ms int) { time.sleep(timeout_in_ms * time.millisecond) println('>> webserver: pid: ${os.getpid()}, exiting ...') exit(0) } fn main() { if os.args.len != 3 { panic('Usage: `controller_test_server.exe PORT TIMEOUT_IN_MILLISECONDS`') } http_port := os.args[1].int() assert http_port > 0 timeout := os.args[2].int() mut app_dup := &App{ controllers: [ vweb.controller('/admin', &Admin{}), ] } vweb.run_at(app_dup, host: 'localhost', port: http_port, family: .ip) or { panic(err) } }