From f62a59b551faf9af39a58cc2eeae55bfddfac7e9 Mon Sep 17 00:00:00 2001 From: bandl <1658002533@qq.com> Date: Mon, 29 Nov 2021 23:35:18 +0800 Subject: [PATCH] feat(structure): add channelx --- pkg/structure/channelx/channelx.go | 9 ++++++++- pkg/structure/define.go | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/structure/channelx/channelx.go b/pkg/structure/channelx/channelx.go index fb27ae9..63235f8 100644 --- a/pkg/structure/channelx/channelx.go +++ b/pkg/structure/channelx/channelx.go @@ -51,9 +51,16 @@ func (c *ChannelX) Push(value string) structure.UpdateLength { func (c *ChannelX) Pop() (string, structure.UpdateLength) { val := <-c.channel - return val.ToString(), structure.UpdateLength(val.GetSize()) + return val.ToString(), structure.UpdateLength(val.GetSize()) * -1 } func (c *ChannelX) Length() int { return len(c.channel) } + +func (c *ChannelX) CLean() structure.UpdateLength { + c.channel = make(chan *structure.Value, cap(c.channel)) + up := c.sizeByte + c.sizeByte = 0 + return structure.UpdateLength(up) * -1 +} diff --git a/pkg/structure/define.go b/pkg/structure/define.go index b726f97..09dcd98 100644 --- a/pkg/structure/define.go +++ b/pkg/structure/define.go @@ -73,4 +73,5 @@ type ChannelXInterface interface { Push(value string) UpdateLength Pop() (string, UpdateLength) Length() int + Clean() UpdateLength }