Initial project import

This commit is contained in:
Agila Forge Importer committed 2026-07-13 15:20:32 +00:00
commit 23f2d29e32
11957 files changed
+1754577

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
module veb
import fasthttp
@[heap]
pub struct Server {
handle fasthttp.ServerHandle
lifecycle_control bool
}
fn new_server_with_lifecycle(handle fasthttp.ServerHandle) &Server {
return &Server{
handle: handle
lifecycle_control: true
}
}
fn new_server_without_lifecycle() &Server {
return &Server{}
}
fn (s &Server) ensure_lifecycle_control() ! {
if !s.lifecycle_control {
return error('veb server lifecycle control is not available with SSL')
}
}
// wait_till_running waits until the server starts accepting requests.
pub fn (s &Server) wait_till_running(params WaitTillRunningParams) !int {
s.ensure_lifecycle_control()!
return s.handle.wait_till_running(fasthttp.WaitTillRunningParams{
max_retries: params.max_retries
retry_period_ms: params.retry_period_ms
})!
}
// shutdown gracefully stops accepting new requests and waits for in-flight requests to finish.
pub fn (s &Server) shutdown(params ShutdownParams) ! {
s.ensure_lifecycle_control()!
s.handle.shutdown(fasthttp.ShutdownParams{
timeout: params.timeout
retry_period_ms: params.retry_period_ms
})!
}