26 lines
482 B
Go
26 lines
482 B
Go
|
// Copyright (c) 2013 CloudFlare, Inc.
|
||
|
|
||
|
// Extensions to "container/list" that allowing reuse of Elements.
|
||
|
|
||
|
package lrucache
|
||
|
|
||
|
func (l *list) PushElementFront(e *element) *element {
|
||
|
return l.insert(e, &l.root)
|
||
|
}
|
||
|
|
||
|
func (l *list) PushElementBack(e *element) *element {
|
||
|
return l.insert(e, l.root.prev)
|
||
|
}
|
||
|
|
||
|
func (l *list) PopElementFront() *element {
|
||
|
el := l.Front()
|
||
|
l.Remove(el)
|
||
|
return el
|
||
|
}
|
||
|
|
||
|
func (l *list) PopFront() interface{} {
|
||
|
el := l.Front()
|
||
|
l.Remove(el)
|
||
|
return el.Value
|
||
|
}
|