Documentation
¶
Index ¶
- Variables
- func MatchRule(cfg config.Config, path []byte) *config.Rule
- func WetherAnErrIsTheRuleNotFound(err error) bool
- type CacheItem
- type Entry
- func (e *Entry) DumpBuffer(r *fasthttp.RequestCtx)
- func (e *Entry) DumpPayload()
- func (e *Entry) Fingerprint() [16]byte
- func (e *Entry) Init() *Entry
- func (e *Entry) IsSameFingerprint(another [16]byte) bool
- func (e *Entry) IsSamePayload(another *Entry) bool
- func (e *Entry) LruListElement() *list.Element[*Entry]
- func (e *Entry) MapKey() uint64
- func (e *Entry) Payload() (req *fasthttp.Request, resp *fasthttp.Response, releaser Releaser, err error)
- func (e *Entry) RefreshedAt() int64
- func (e *Entry) Rule() *config.Rule
- func (e *Entry) SetLruListElement(el *list.Element[*Entry])
- func (e *Entry) SetMapKeyForTests(key uint64) *Entry
- func (e *Entry) SetPayload(req *fasthttp.Request, resp *fasthttp.Response) *Entry
- func (e *Entry) ShardKey() uint64
- func (e *Entry) ShouldBeRefreshed(cfg config.Config) bool
- func (e *Entry) SwapPayloads(another *Entry)
- func (e *Entry) ToBytes() (data []byte, releaseFn func())
- func (e *Entry) Weight() int64
- type Releaser
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrPayloadIsEmpty = fmt.Errorf("payload is empty")
Functions ¶
func WetherAnErrIsTheRuleNotFound ¶ added in v1.2.0
Types ¶
type CacheItem ¶ added in v1.2.0
type CacheItem interface {
Rule() *config.Rule
MapKey() uint64
ShardKey() uint64
Fingerprint() [16]byte
IsSameFingerprint(another [16]byte) bool
SwapPayloads(another *Entry)
IsSamePayload(another *Entry) bool
SetPayload(req *fasthttp.Request, resp *fasthttp.Response) *Entry
Payload() (req *fasthttp.Request, resp *fasthttp.Response, releaser Releaser, err error)
ShouldBeRefreshed(cfg config.Config) bool
LruListElement() *list.Element[*Entry]
SetLruListElement(el *list.Element[*Entry])
ToBytes() (data []byte, releaseFn func())
RefreshedAt() int64
Weight() int64
}
type Entry ¶ added in v0.9.3
type Entry struct {
// contains filtered or unexported fields
}
func EntryFromBytes ¶ added in v0.9.3
func NewEntryWithPayload ¶ added in v1.2.0
func (*Entry) DumpBuffer ¶ added in v1.0.1
func (e *Entry) DumpBuffer(r *fasthttp.RequestCtx)
func (*Entry) DumpPayload ¶ added in v0.9.3
func (e *Entry) DumpPayload()
func (*Entry) Fingerprint ¶ added in v0.9.3
func (*Entry) IsSameFingerprint ¶ added in v0.9.3
func (*Entry) IsSamePayload ¶ added in v1.0.1
func (*Entry) LruListElement ¶ added in v0.9.3
func (*Entry) Payload ¶ added in v0.9.3
func (e *Entry) Payload() (req *fasthttp.Request, resp *fasthttp.Response, releaser Releaser, err error)
Payload decompresses the entire payload and unpacks it into fields.
func (*Entry) RefreshedAt ¶ added in v1.2.0
func (*Entry) SetLruListElement ¶ added in v0.9.3
func (*Entry) SetMapKeyForTests ¶ added in v1.2.0
SetMapKeyForTests is really dangerous - must be used exclusively in tests.
func (*Entry) SetPayload ¶ added in v0.9.3
SetPayload packs and gzip-compresses the entire payload: Path, Query, QueryHeaders, StatusCode, ResponseHeaders, Body.
func (*Entry) ShouldBeRefreshed ¶ added in v0.9.3
ShouldBeRefreshed implements probabilistic refresh logic ("beta" algorithm). Returns true if the entry is stale and, with a probability proportional to its staleness, should be refreshed now.
func (*Entry) SwapPayloads ¶ added in v1.0.1
Click to show internal directories.
Click to hide internal directories.