v2 / vlib / veb / server.v
30 lines · 25 sloc · 620 bytes · bae41912ce9b9802bc977b05a89be18a80da5f8d
Raw
1module veb
2
3import time
4
5// ShutdownParams configures how graceful shutdown waits for in-flight requests.
6@[params]
7pub struct ShutdownParams {
8pub:
9 timeout time.Duration = time.infinite
10 retry_period_ms int = 10
11}
12
13// WaitTillRunningParams configures how long the server waits to report that it is serving.
14@[params]
15pub struct WaitTillRunningParams {
16pub:
17 max_retries int = 100
18 retry_period_ms int = 10
19}
20
21interface HasInitServer {
22mut:
23 init_server(server &Server)
24}
25
26fn maybe_init_server[A](mut global_app A, server &Server) {
27 $if A is HasInitServer {
28 global_app.init_server(server)
29 }
30}
31