specs

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const TimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT"

Variables

View Source
var ErrorInvalidUrlFormat = &GigletError{
	Op:  GigletOp("url"),
	Err: errors.New("invalid format"),
}

Functions

func BasicAuthHeader

func BasicAuthHeader(username, password string) string

func ComputeWebSocketAcceptKey

func ComputeWebSocketAcceptKey(challengeKey string) string

func MatchError

func MatchError(err, other error) bool

Types

type ContentEncoding

type ContentEncoding string
const (
	UnknownContentEncoding ContentEncoding = ""
	GzipContentEncoding    ContentEncoding = "gzip"
)

type ContentType

type ContentType string
const (
	ContentTypeUndefined ContentType = ""
	ContentTypeRaw       ContentType = "application/octet-stream"
	ContentTypePlain     ContentType = "text/plain"
	ContentTypeRichtext  ContentType = "application/rtf"
	ContentTypeMarkdown  ContentType = "text/markdown"

	ContentTypeHTML       ContentType = "text/html"
	ContentTypeCSV        ContentType = "text/csv"
	ContentTypeCSS        ContentType = "text/css"
	ContentTypePDF        ContentType = "application/pdf"
	ContentTypeJavaScript ContentType = "text/javascript"
	ContentTypeFontTTF    ContentType = "font/ttf"

	ContentTypeAVI  ContentType = "video/x-msvideo"
	ContentTypeWAV  ContentType = "audio/wav"
	ContentTypeMP3  ContentType = "audio/mpeg"
	ContentTypeMP4  ContentType = "video/mp4"
	ContentTypeMPEG ContentType = "video/mpeg"
	ContentTypeMPV  ContentType = "video/MPV"
	ContentTypeMKV  ContentType = "application/x-matroska"

	ContentTypeAVIF ContentType = "image/avif"
	ContentTypeBMP  ContentType = "image/bmp"
	ContentTypeGIF  ContentType = "image/gif"
	ContentTypeJPEG ContentType = "image/jpeg"
	ContentTypePNG  ContentType = "image/png"
	ContentTypeWEBP ContentType = "image/webp"
	ContentTypeSVG  ContentType = "image/svg+xml"

	ContentTypeJson      ContentType = "application/json"
	ContentTypeXml       ContentType = "application/xml"
	ContentTypeMsgpack   ContentType = "application/msgpack"
	ContentTypeProtobuf  ContentType = "application/x-protobuf"
	ContentTypeForm      ContentType = "application/x-www-form-urlencoded"
	ContentTypeMultipart ContentType = "multipart/form-data"
)

func (ContentType) IsForm

func (contentType ContentType) IsForm() bool
type Cookie struct {
	Name  string
	Value string

	Domain  string
	MaxAge  uint64
	Expires time.Time
	Path    string

	HttpOnly bool
	Secure   bool
	SameSite CookieSameSite
}

func (*Cookie) Bytes

func (cookie *Cookie) Bytes(short bool) []byte

func (*Cookie) IsExpired

func (cookie *Cookie) IsExpired(now time.Time) bool

type CookieJar

type CookieJar struct {
	// contains filtered or unexported fields
}

func (*CookieJar) Cookies

func (jar *CookieJar) Cookies(url *Url) iter.Seq[Cookie]

func (*CookieJar) GetCookie

func (jar *CookieJar) GetCookie(url *Url, name string) *Cookie

func (*CookieJar) SetCookie

func (jar *CookieJar) SetCookie(url *Url, cookie Cookie)

func (*CookieJar) SetCookies

func (jar *CookieJar) SetCookies(url *Url, cookies []Cookie)

func (*CookieJar) SetCookiesIter

func (jar *CookieJar) SetCookiesIter(url *Url, cookies iter.Seq[Cookie])

type CookieSameSite

type CookieSameSite string
const (
	CookieSameSiteLaxMode    CookieSameSite = "Lax"
	CookieSameSiteStrictMode CookieSameSite = "Strict"
	CookieSameSiteNoneMode   CookieSameSite = "None"
)

type Form

type Form url.Values

type GigletError

type GigletError struct {
	Op  GigletOp
	Err error
}

func (*GigletError) Error

func (e *GigletError) Error() string

func (*GigletError) String

func (e *GigletError) String() string

type GigletOp

type GigletOp string
type Header struct {
	// contains filtered or unexported fields
}

func (*Header) All

func (header *Header) All() iter.Seq2[string, string]

func (*Header) Bytes

func (header *Header) Bytes() []byte

func (*Header) CookieHeaderBytes

func (header *Header) CookieHeaderBytes() []byte

func (*Header) Cookies

func (header *Header) Cookies() iter.Seq[Cookie]

func (*Header) Del

func (header *Header) Del(name string)

func (*Header) DelCookie

func (header *Header) DelCookie(name string)

func (*Header) Get

func (header *Header) Get(name string) string

func (*Header) GetCookie

func (header *Header) GetCookie(name string) *Cookie

func (*Header) Has

func (header *Header) Has(name string) bool

func (*Header) HasCookie

func (header *Header) HasCookie(name string) bool

func (*Header) Set

func (header *Header) Set(name, value string)

func (*Header) SetCookie

func (header *Header) SetCookie(cookie Cookie)

func (*Header) SetCookieHeaderBytes

func (header *Header) SetCookieHeaderBytes() []byte

func (*Header) SetCookieValue

func (header *Header) SetCookieValue(name, value string)

type HttpMethod

type HttpMethod string
const (
	HttpMethodGet     HttpMethod = "GET"
	HttpMethodPost    HttpMethod = "POST"
	HttpMethodPut     HttpMethod = "PUT"
	HttpMethodDelete  HttpMethod = "DELETE"
	HttpMethodOptions HttpMethod = "OPTIONS"
	HttpMethodHead    HttpMethod = "HEAD"
	HttpMethodPatch   HttpMethod = "PATCH"
	HttpMethodTrace   HttpMethod = "TRACE"

	HttpMethodConnect HttpMethod = "CONNECT"
	HttpMethodPreface HttpMethod = "PRI"
)

func (HttpMethod) CanHaveResponseBody

func (method HttpMethod) CanHaveResponseBody() bool

func (HttpMethod) IsPostable

func (method HttpMethod) IsPostable() bool

func (HttpMethod) IsValid

func (method HttpMethod) IsValid() bool

type Query

type Query map[string]string

func ParseQuery

func ParseQuery(query string) (q Query, err error)

func (Query) String

func (q Query) String() string

type ReadOnlyHeader

type ReadOnlyHeader struct {
	// contains filtered or unexported fields
}

func NewReadOnlyHeader

func NewReadOnlyHeader(headers map[string]string, cookies map[string]*Cookie) *ReadOnlyHeader

Creates read-only headers struct from mapped valid cased (Title-Case) headers map

func (*ReadOnlyHeader) All

func (header *ReadOnlyHeader) All() iter.Seq2[string, string]

func (*ReadOnlyHeader) ContentLength

func (header *ReadOnlyHeader) ContentLength() int64

func (*ReadOnlyHeader) ContentType

func (header *ReadOnlyHeader) ContentType() ContentType

func (*ReadOnlyHeader) Cookies

func (header *ReadOnlyHeader) Cookies() iter.Seq[Cookie]

func (*ReadOnlyHeader) Get

func (header *ReadOnlyHeader) Get(name string) string

func (*ReadOnlyHeader) GetCookie

func (header *ReadOnlyHeader) GetCookie(name string) *Cookie

func (*ReadOnlyHeader) GetMediaParams

func (header *ReadOnlyHeader) GetMediaParams(name string) string

func (*ReadOnlyHeader) TryGet

func (header *ReadOnlyHeader) TryGet(name string) (string, bool)

type StatusCode

type StatusCode uint16
const (
	StatusCodeUndefined StatusCode = 0

	StatusCodeContinue           StatusCode = 100
	StatusCodeSwitchingProtocols StatusCode = 101
	StatusCodeProcessing         StatusCode = 102
	StatusCodeEarlyHints         StatusCode = 103

	StatusCodeOK                   StatusCode = 200
	StatusCodeCreated              StatusCode = 201
	StatusCodeAccepted             StatusCode = 202
	StatusCodeNonAuthoritativeInfo StatusCode = 203
	StatusCodeNoContent            StatusCode = 204
	StatusCodeResetContent         StatusCode = 205
	StatusCodePartialContent       StatusCode = 206
	StatusCodeMultiStatus          StatusCode = 207
	StatusCodeAlreadyReported      StatusCode = 208
	StatusCodeIMUsed               StatusCode = 226

	StatusCodeMultipleChoices   StatusCode = 300
	StatusCodeMovedPermanently  StatusCode = 301
	StatusCodeFound             StatusCode = 302
	StatusCodeSeeOther          StatusCode = 303
	StatusCodeNotModified       StatusCode = 304
	StatusCodeUseProxy          StatusCode = 305
	StatusCodeTemporaryRedirect StatusCode = 307
	StatusCodePermanentRedirect StatusCode = 308

	StatusCodeBadRequest                   StatusCode = 400
	StatusCodeUnauthorized                 StatusCode = 401
	StatusCodePaymentRequired              StatusCode = 402
	StatusCodeForbidden                    StatusCode = 403
	StatusCodeNotFound                     StatusCode = 404
	StatusCodeMethodNotAllowed             StatusCode = 405
	StatusCodeNotAcceptable                StatusCode = 406
	StatusCodeProxyAuthRequired            StatusCode = 407
	StatusCodeRequestTimeout               StatusCode = 408
	StatusCodeConflict                     StatusCode = 409
	StatusCodeGone                         StatusCode = 410
	StatusCodeLengthRequired               StatusCode = 411
	StatusCodePreconditionFailed           StatusCode = 412
	StatusCodeRequestEntityTooLarge        StatusCode = 413
	StatusCodeRequestURITooLong            StatusCode = 414
	StatusCodeUnsupportedMediaType         StatusCode = 415
	StatusCodeRequestedRangeNotSatisfiable StatusCode = 416
	StatusCodeExpectationFailed            StatusCode = 417
	StatusCodeTeapot                       StatusCode = 418
	StatusCodeMisdirectedRequest           StatusCode = 421
	StatusCodeUnprocessableEntity          StatusCode = 422
	StatusCodeLocked                       StatusCode = 423
	StatusCodeFailedDependency             StatusCode = 424
	StatusCodeTooEarly                     StatusCode = 425
	StatusCodeUpgradeRequired              StatusCode = 426
	StatusCodePreconditionRequired         StatusCode = 428
	StatusCodeTooManyRequests              StatusCode = 429
	StatusCodeRequestHeaderFieldsTooLarge  StatusCode = 431
	StatusCodeUnavailableForLegalReasons   StatusCode = 451

	StatusCodeInternalServerError           StatusCode = 500
	StatusCodeNotImplemented                StatusCode = 501
	StatusCodeBadGateway                    StatusCode = 502
	StatusCodeServiceUnavailable            StatusCode = 503
	StatusCodeGatewayTimeout                StatusCode = 504
	StatusCodeHTTPVersionNotSupported       StatusCode = 505
	StatusCodeVariantAlsoNegotiates         StatusCode = 506
	StatusCodeInsufficientStorage           StatusCode = 507
	StatusCodeLoopDetected                  StatusCode = 508
	StatusCodeNotExtended                   StatusCode = 510
	StatusCodeNetworkAuthenticationRequired StatusCode = 511
)

func (StatusCode) Detail

func (code StatusCode) Detail() []byte

func (StatusCode) HaveBody

func (status StatusCode) HaveBody() bool

func (StatusCode) IsRedirect

func (status StatusCode) IsRedirect() bool

func (StatusCode) IsValid

func (status StatusCode) IsValid() bool

type Url

type Url struct {
	Scheme, Username, Password,
	Host, Path, Hash string
	Port uint16
	// contains filtered or unexported fields
}

func MustParseUrl

func MustParseUrl(url string) *Url

func MustParseUrlQuery

func MustParseUrlQuery(url string, query Query) *Url

func ParseUrl

func ParseUrl(url string) (*Url, error)

func ParseUrlQuery

func ParseUrlQuery(url string, query Query) (*Url, error)

func (*Url) Query

func (url *Url) Query() string

func (*Url) QueryParams

func (url *Url) QueryParams() Query

func (*Url) SecondLevelHost

func (url *Url) SecondLevelHost() string

func (*Url) SetQuery

func (url *Url) SetQuery(query string)

func (*Url) SetQueryParams

func (url *Url) SetQueryParams(query Query)

func (*Url) String

func (url *Url) String() string

type WebSocketClose

type WebSocketClose uint16
const (
	WebSocketCloseNormal              WebSocketClose = 1000
	WebSocketCloseGoingAway           WebSocketClose = 1001
	WebSocketCloseProtocolError       WebSocketClose = 1002
	WebSocketCloseUnsupportedData     WebSocketClose = 1003
	WebSocketCloseNoStatusReceived    WebSocketClose = 1005
	WebSocketCloseAbnormal            WebSocketClose = 1006
	WebSocketCloseInvalidPayloadData  WebSocketClose = 1007
	WebSocketClosePolicyViolation     WebSocketClose = 1008
	WebSocketCloseMessageTooBig       WebSocketClose = 1009
	WebSocketCloseMandatoryExtension  WebSocketClose = 1010
	WebSocketCloseInternalServerError WebSocketClose = 1011
	WebSocketCloseServiceRestart      WebSocketClose = 1012
	WebSocketCloseTryAgainLater       WebSocketClose = 1013
	WebSocketCloseTLSHandshake        WebSocketClose = 1015
)

func (WebSocketClose) Detail

func (code WebSocketClose) Detail() []byte

type WebSocketFrame

type WebSocketFrame uint16
const (
	WebSocketUnknownFrame WebSocketFrame = 0
	WebSocketTextFrame    WebSocketFrame = 1
	WebSocketBinaryFrame  WebSocketFrame = 2
	WebSocketCloseFrame   WebSocketFrame = 8
	WebSocketPingFrame    WebSocketFrame = 9
	WebSocketPongFrame    WebSocketFrame = 10
)

func (WebSocketFrame) IsContent

func (frame WebSocketFrame) IsContent() bool

func (WebSocketFrame) IsService

func (frame WebSocketFrame) IsService() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL