Documentation ¶
Overview ¶
包装罐见Go医生
包装罐见Go医生
Index ¶
- func DefaultPof(max int) func(one, other Val, pos int) (int, bool)
- func Label(v Val) string
- func NewAddressFromString(s string) []byte
- func ProxCmp(a, x, y interface{}) int
- func ToBin(a []byte) string
- func ToBytes(v Val) []byte
- type Address
- type BytesAddress
- type Pof
- type Pot
- func (t *Pot) Each(f func(Val) bool) bool
- func (t *Pot) EachBin(val Val, pof Pof, po int, f func(int, int, func(func(val Val) bool) bool) bool)
- func (t *Pot) EachNeighbour(val Val, pof Pof, f func(Val, int) bool) bool
- func (t *Pot) EachNeighbourAsync(val Val, pof Pof, max int, maxPos int, f func(Val, int), wait bool)
- func (t *Pot) Pin() Val
- func (t *Pot) Size() int
- func (t *Pot) String() string
- type Val
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultPof ¶
defaultpof返回一个接近顺序比较运算符函数
func NewAddressFromString ¶
newAddressFromString从二进制表示的字符串创建字节片
Types ¶
type Address ¶
地址是common.hash的别名
func RandomAddressAt ¶
randomaddressat(地址,代理)生成随机地址 在接近顺序,相对于地址的代理 如果prox为负,则生成随机地址。
func (*Address) MarshalJSON ¶
marshaljson地址序列化
type Pot ¶
type Pot struct {
// contains filtered or unexported fields
}
pot是节点类型(根、分支节点和叶相同)
func Add ¶
添加将新值插入到容器中,然后 返回v和布尔值的接近顺序 指示是否找到该项 add called on(t,v)返回包含t的所有元素的新pot 加上V值,使用应用加法 第二个返回值是插入元素的接近顺序。 第三个是布尔值,指示是否找到该项
func Swap ¶
调用的swap(k,f)在k处查找项
如果f(v)返回nil,则删除元素 如果f(v)返回v'<>v,则v'插入锅中。 如果(v)==v,则罐不更换。 如果pof(f(v),k)显示v'和v不是键相等,则会恐慌。
func (*Pot) EachBin ¶
func (t *Pot) EachBin(val Val, pof Pof, po int, f func(int, int, func(func(val Val) bool) bool) bool)
eachbin在pivot节点的bin上迭代,并在每个pivot节点上向调用者提供迭代器。 传递接近顺序和大小的子树 迭代将继续,直到函数的返回值为假 或者没有其他子项
func (*Pot) EachNeighbour ¶
eachneighbur是任何目标val的邻居上的同步迭代器。 元素的检索顺序反映了目标的接近顺序。 TODO:将最大proxybin添加到迭代的开始范围
func (*Pot) EachNeighbourAsync ¶
func (t *Pot) EachNeighbourAsync(val Val, pof Pof, max int, maxPos int, f func(Val, int), wait bool)
调用的eachneighbourasync(val、max、maxpos、f、wait)是异步迭代器 在不小于maxpos wrt val的元素上。 val不需要与pot元素匹配,但如果匹配,并且 maxpos是keylength,而不是包含在迭代中的keylength 对f的调用是并行的,调用顺序未定义。 在锅中没有元素 如果访问了更近的节点,则不会访问。 当访问最大最近节点数时,迭代完成。 或者,如果整个系统中没有不比未访问的maxpos更近的节点 如果wait为true,则仅当对f的所有调用都完成时,迭代器才返回 TODO:为正确的代理范围迭代实现minpos