mirror of
https://github.com/impact-eintr/netstack.git
synced 2025-10-06 05:16:50 +08:00
这个仓库代码量太大了 以读为主 不写了
This commit is contained in:
@@ -1,31 +0,0 @@
|
||||
package buffer
|
||||
|
||||
type Prependable struct {
|
||||
buf View // Buf 是支持前置缓冲区的缓冲区
|
||||
usedIdx int // 是缓冲区的使用部分开始的索引
|
||||
}
|
||||
|
||||
func NewPrependable(size int) Prependable {
|
||||
return Prependable{}
|
||||
}
|
||||
|
||||
func NewPrependableFromView(v View) Prependable {
|
||||
return Prependable{buf: v, usedIdx: 0}
|
||||
}
|
||||
|
||||
func (p Prependable) View() View {
|
||||
return p.buf[p.usedIdx:]
|
||||
}
|
||||
|
||||
func (p Prependable) UsedLength() inty {
|
||||
return len(p.buf) - p.usedIdx
|
||||
}
|
||||
|
||||
func (p *Prependable) Prepend(size int) []byte {
|
||||
if size > p.usedIdx {
|
||||
return nil
|
||||
}
|
||||
|
||||
p.usedIdx -= size
|
||||
return p.View()[:size:size]
|
||||
}
|
Reference in New Issue
Block a user