package server import ( "io" "log" "net/http" ) type ServerConfig struct { Name string } type Server struct { config *ServerConfig } func NewServer(config *ServerConfig) Server { return Server{config: config} } func (server *Server) Serve(addr string) { http.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "Hello World!\n") }) log.Default().Printf("Server \"%s\" listening at %s", server.config.Name, addr) err := http.ListenAndServe(addr, nil) log.Fatal(err) }