// Copyright 2024 Matthew Rich . All rights reserved. package transport import ( "io/fs" "decl/internal/identifier" "net/url" "path/filepath" "time" ) type HTTPFileInfo struct { URI identifier.ID parsedURI *url.URL ContentLength int64 LastModified time.Time ContentType string Collection bool } func NewHTTPFileInfo(uri string) (h *HTTPFileInfo) { h = &HTTPFileInfo{ URI: identifier.ID(uri) } h.parsedURI = h.URI.Parse() if h.parsedURI == nil { return nil } return } func (h *HTTPFileInfo) Size() int64 { return h.ContentLength } func (h *HTTPFileInfo) Name() string { return filepath.Base(h.parsedURI.Path) } func (h *HTTPFileInfo) Mode() fs.FileMode { return 0777 } func (h *HTTPFileInfo) ModTime() time.Time { return h.LastModified } func (h *HTTPFileInfo) IsDir() bool { return h.Collection } func (h *HTTPFileInfo) Sys() any { return any(h) }