本文整理匯總了Golang中github.com/paulfchristiano/dwimmer/term/intern.Packer.UnpackString方法的典型用法代碼示例。如果您正苦於以下問題:Golang Packer.UnpackString方法的具體用法?Golang Packer.UnpackString怎麽用?Golang Packer.UnpackString使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/paulfchristiano/dwimmer/term/intern.Packer
的用法示例。
在下文中一共展示了Packer.UnpackString方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: unpickleT
func unpickleT(packer intern.Packer, kind int, packed intern.Packed) (T, bool) {
switch kind {
case chanT:
unpickled, ok := packer.UnpackPickler(packed, &SettingT{})
if !ok {
return nil, false
}
setting, ok := unpickled.(*SettingT)
return MakeChannel(setting), ok
case intT:
result, ok := packer.UnpackInt(packed)
if !ok {
//panic(fmt.Errorf("failed to unpickle int from %v", packed))
}
return Int(result), ok
case strT:
result, ok := packer.UnpackString(packed)
return Str(result), ok
case quotedT:
unpickled, ok := packer.UnpackPickler(packed, &CompoundT{})
if !ok {
return nil, false
}
return Quote(unpickled.(T)), true
case wrapperT:
return Make("a term that stands in for a wrapped go object that could not be pickled").T(), true
case compoundT:
result := &CompoundT{}
if packed, args, ok := packer.UnpackPair(packed); ok {
if args, ok := packer.UnpackList(args); ok {
result.args = make([]T, len(args))
for i, arg := range args {
unpacked, ok := packer.UnpackPickler(arg, &CompoundT{})
if !ok {
return nil, false
}
result.args[i] = unpacked.(T)
}
id, ok := unpickleTemplateID(packer, packed)
if !ok {
return nil, false
}
result.TemplateID = id
return result, true
}
}
}
return nil, false
}
示例2: Unpickle
func (t *Template) Unpickle(packer intern.Packer, pickled intern.Packed) (intern.Pickler, bool) {
result := &Template{}
if v, parts, ok := packer.UnpackPair(pickled); ok {
if v, ok := packer.UnpackInt(v); ok && v == v1Template {
if parts, ok := packer.UnpackList(parts); ok {
result.Parts = make([]string, len(parts))
for i, part := range parts {
if part, ok := packer.UnpackString(part); ok {
result.Parts[i] = part
}
}
return result, true
}
}
}
return nil, false
}