Versions in this module Expand all Collapse all v0 v0.9.0 Nov 14, 2018 Changes in this version + var DelMgr = Deleted + var JSONTypePrefix = []byte("{\"ki.RootType\": ") + var JSONTypeSuffix = []byte("}\n") + var KiT_Flags = kit.Enums.AddEnum(FlagsN, true, nil) + var KiT_Node = kit.Types.AddType(&Node{}, nil) + var KiT_Props = kit.Types.AddType(&Props{}, PropsProps) + var KiT_Ptr = kit.Types.AddType(&Ptr{}, nil) + var KiT_Signal = kit.Types.AddType(&Signal{}, nil) + var PropsProps = Props + var SignalTrace bool = false + var SignalTraceString *string + var UniquifyPreserveNameLimit = 100 + func CopyProps(dest *map[string]interface{}, src map[string]interface{}, copySubProps bool) + func DecodeXMLCharData(d *xml.Decoder) (val string, err error) + func DecodeXMLCharEl(d *xml.Decoder) (name, val string, err error) + func DecodeXMLEndEl(d *xml.Decoder, start xml.StartElement) error + func DecodeXMLStartEl(d *xml.Decoder) (start xml.StartElement, err error) + func FlatFieldsValueFunc(stru interface{}, ...) bool + func IsKi(typ reflect.Type) bool + func KiType() reflect.Type + func SliceDeleteAtIndex(sl *[]Ki, idx int) bool + func SliceIndexByFunc(sl *[]Ki, startIdx int, match func(k Ki) bool) (int, bool) + func SliceIndexByName(sl *[]Ki, name string, startIdx int) (int, bool) + func SliceIndexByType(sl *[]Ki, t reflect.Type, embeds bool, startIdx int) (int, bool) + func SliceIndexByUniqueName(sl *[]Ki, name string, startIdx int) (int, bool) + func SliceIndexOf(sl *[]Ki, kid Ki, startIdx int) (int, bool) + func SliceInsert(sl *[]Ki, k Ki, idx int) + func SliceIsValidIndex(sl *[]Ki, idx int) bool + func SliceMove(sl *[]Ki, from, to int) bool + type BlankProp struct + type Deleted struct + Dels []Ki + Mu sync.Mutex + func (dm *Deleted) Add(kis ...Ki) + func (dm *Deleted) DestroyDeleted() + type Flags int32 + const ChildAdded + const ChildDeleted + const ChildMoved + const ChildUpdateFlagsMask + const ChildrenDeleted + const FieldUpdated + const FlagsN + const IsField + const NodeAdded + const NodeCopied + const NodeDeleted + const NodeDestroyed + const NodeMoved + const NodeUpdateFlagsMask + const OnlySelfUpdate + const PropUpdated + const StruUpdateFlagsMask + const UpdateFlagsMask + const Updating + const ValUpdateFlagsMask + func (i *Flags) FromString(s string) error + func (i Flags) String() string + type Func func(k Ki, level int, data interface{}) bool + type Ki interface + AddChild func(kid Ki) error + AddNewChild func(typ reflect.Type, name string) Ki + Child func(idx int) (Ki, bool) + ChildByName func(name string, startIdx int) (Ki, bool) + Children func() *Slice + ClearFlag func(flag ...int) + ClearFlagMask func(mask int64) + Clone func() Ki + ConfigChildren func(config kit.TypeAndNameList, uniqNm bool) (mods, updt bool) + CopyFrom func(from Ki) error + CopyFromRaw func(from Ki) error + CopyPropsFrom func(from Ki, deep bool) error + Delete func(destroy bool) + DeleteAllProps func(cap int) + DeleteChild func(child Ki, destroy bool) bool + DeleteChildAtIndex func(idx int, destroy bool) bool + DeleteChildByName func(name string, destroy bool) (Ki, bool) + DeleteChildren func(destroy bool) + DeleteProp func(key string) + Destroy func() + Disconnect func() + DisconnectAll func() + Embed func(t reflect.Type) Ki + FieldByName func(field string) interface{} + FieldRoot func() Ki + FieldTag func(field, tag string) string + FindPathUnique func(path string) (Ki, bool) + Flags func() int64 + FuncDownBreadthFirst func(level int, data interface{}, fun Func) + FuncDownDepthFirst func(level int, data interface{}, doChildTestFunc Func, fun Func) + FuncDownMeFirst func(level int, data interface{}, fun Func) bool + FuncFields func(level int, data interface{}, fun Func) + FuncUp func(level int, data interface{}, fun Func) bool + FuncUpParent func(level int, data interface{}, fun Func) bool + GetPtrPaths func() + GoFuncDown func(level int, data interface{}, fun Func) + GoFuncFields func(level int, data interface{}, fun Func) + HasAllFlags func(flag ...int) bool + HasAnyFlag func(flag ...int) bool + HasChildren func() bool + HasFlag func(flag int) bool + HasParent func(par Ki) bool + IndexInParent func() (int, bool) + Init func(this Ki) + InitName func(this Ki, name string) + InsertChild func(kid Ki, at int) error + InsertNewChild func(typ reflect.Type, at int, name string) Ki + InsertNewChildUnique func(typ reflect.Type, at int, name string) Ki + IsDeleted func() bool + IsDestroyed func() bool + IsField func() bool + IsRoot func() bool + IsUpdating func() bool + KiFieldByName func(name string) (Ki, bool) + KnownChild func(idx int) Ki + KnownChildByName func(name string, startIdx int) Ki + KnownProp func(key string) interface{} + MoveChild func(from, to int) bool + Name func() string + NewOfType func(typ reflect.Type) Ki + NodeSignal func() *Signal + OnlySelfUpdate func() bool + OpenJSON func(filename string) error + Parent func() Ki + ParentAllChildren func() + ParentByName func(name string) (Ki, bool) + ParentByType func(t reflect.Type, embeds bool) (Ki, bool) + ParentLevel func(par Ki) int + Path func() string + PathFrom func(par Ki) string + PathFromUnique func(par Ki) string + PathUnique func() string + Prop func(key string) (interface{}, bool) + PropInherit func(key string, inherit, typ bool) (interface{}, bool) + PropTag func() string + Properties func() *Props + ReadJSON func(reader io.Reader) error + ReadXML func(reader io.Reader) error + Root func() Ki + SaveJSON func(filename string) error + SetChild func(kid Ki, idx int, name string) error + SetChildType func(t reflect.Type) error + SetField func(field string, val interface{}) bool + SetFieldDown func(field string, val interface{}) + SetFieldUp func(field string, val interface{}) + SetFlag func(flag ...int) + SetFlagMask func(mask int64) + SetFlagState func(on bool, flag ...int) + SetNChildren func(n int, typ reflect.Type, nameStub string) (mods, updt bool) + SetName func(name string) bool + SetNameRaw func(name string) + SetOnlySelfUpdate func() + SetParent func(parent Ki) + SetProp func(key string, val interface{}) + SetPropChildren func(key string, val interface{}) + SetPropUpdate func(key string, val interface{}) + SetProps func(props Props, update bool) + SetPtrsFmPaths func() + SetUniqueName func(name string) + This func() Ki + ThisCheck func() error + Type func() reflect.Type + TypeEmbeds func(t reflect.Type) bool + UniqueName func() string + UniquifyNames func() + UnmarshalPost func() + UpdateEnd func(updt bool) + UpdateEndNoSig func(updt bool) + UpdatePtrPaths func(oldPath, newPath string, startOnly bool) + UpdateReset func() + UpdateSig func() bool + UpdateStart func() bool + WriteJSON func(writer io.Writer, indent bool) error + WriteXML func(writer io.Writer, indent bool) error + func NewOfType(typ reflect.Type) Ki + func OpenNewJSON(filename string) (Ki, error) + func ReadNewJSON(reader io.Reader) (Ki, error) + type Node struct + Flag int64 + Kids Slice + Nm string + NodeSig Signal + Par Ki + Props Props + Ths Ki + UniqueNm string + func (n *Node) AddChild(kid Ki) error + func (n *Node) AddChildCheck(kid Ki) error + func (n *Node) AddChildImpl(kid Ki) error + func (n *Node) AddNewChild(typ reflect.Type, name string) Ki + func (n *Node) Child(idx int) (Ki, bool) + func (n *Node) ChildByName(name string, startIdx int) (Ki, bool) + func (n *Node) Children() *Slice + func (n *Node) ClearFlag(flag ...int) + func (n *Node) ClearFlagMask(mask int64) + func (n *Node) Clone() Ki + func (n *Node) ConfigChildren(config kit.TypeAndNameList, uniqNm bool) (mods, updt bool) + func (n *Node) CopyFieldsFrom(to interface{}, from interface{}) + func (n *Node) CopyFrom(from Ki) error + func (n *Node) CopyFromRaw(from Ki) error + func (n *Node) CopyMakeChildrenFrom(from Ki) + func (n *Node) CopyPropsFrom(from Ki, deep bool) error + func (n *Node) Delete(destroy bool) + func (n *Node) DeleteAllProps(cap int) + func (n *Node) DeleteChild(child Ki, destroy bool) bool + func (n *Node) DeleteChildAtIndex(idx int, destroy bool) bool + func (n *Node) DeleteChildByName(name string, destroy bool) (Ki, bool) + func (n *Node) DeleteChildren(destroy bool) + func (n *Node) DeleteProp(key string) + func (n *Node) Destroy() + func (n *Node) Disconnect() + func (n *Node) DisconnectAll() + func (n *Node) Embed(t reflect.Type) Ki + func (n *Node) FieldByName(field string) interface{} + func (n *Node) FieldRoot() Ki + func (n *Node) FieldTag(field, tag string) string + func (n *Node) Fields() []uintptr + func (n *Node) FindPathUnique(path string) (Ki, bool) + func (n *Node) Flags() int64 + func (n *Node) FuncDownBreadthFirst(level int, data interface{}, fun Func) + func (n *Node) FuncDownDepthFirst(level int, data interface{}, doChildTestFunc Func, fun Func) + func (n *Node) FuncDownMeFirst(level int, data interface{}, fun Func) bool + func (n *Node) FuncFields(level int, data interface{}, fun Func) + func (n *Node) FuncUp(level int, data interface{}, fun Func) bool + func (n *Node) FuncUpParent(level int, data interface{}, fun Func) bool + func (n *Node) GetPtrPaths() + func (n *Node) GoFuncDown(level int, data interface{}, fun Func) + func (n *Node) GoFuncFields(level int, data interface{}, fun Func) + func (n *Node) HasAllFlags(flag ...int) bool + func (n *Node) HasAnyFlag(flag ...int) bool + func (n *Node) HasChildren() bool + func (n *Node) HasFlag(flag int) bool + func (n *Node) HasParent(par Ki) bool + func (n *Node) IndexInParent() (int, bool) + func (n *Node) Init(this Ki) + func (n *Node) InitName(k Ki, name string) + func (n *Node) InsertChild(kid Ki, at int) error + func (n *Node) InsertChildImpl(kid Ki, at int) error + func (n *Node) InsertNewChild(typ reflect.Type, at int, name string) Ki + func (n *Node) InsertNewChildUnique(typ reflect.Type, at int, name string) Ki + func (n *Node) IsDeleted() bool + func (n *Node) IsDestroyed() bool + func (n *Node) IsField() bool + func (n *Node) IsRoot() bool + func (n *Node) IsUpdating() bool + func (n *Node) IsValidIndex(idx int) bool + func (n *Node) KiFieldByName(name string) (Ki, bool) + func (n *Node) KnownChild(idx int) Ki + func (n *Node) KnownChildByName(name string, startIdx int) Ki + func (n *Node) KnownProp(key string) interface{} + func (n *Node) MoveChild(from, to int) bool + func (n *Node) Name() string + func (n *Node) NewOfType(typ reflect.Type) Ki + func (n *Node) NodeSignal() *Signal + func (n *Node) OnlySelfUpdate() bool + func (n *Node) OpenJSON(filename string) error + func (n *Node) Parent() Ki + func (n *Node) ParentAllChildren() + func (n *Node) ParentByName(name string) (Ki, bool) + func (n *Node) ParentByType(t reflect.Type, embeds bool) (Ki, bool) + func (n *Node) ParentLevel(par Ki) int + func (n *Node) Path() string + func (n *Node) PathFrom(par Ki) string + func (n *Node) PathFromUnique(par Ki) string + func (n *Node) PathUnique() string + func (n *Node) Prop(key string) (interface{}, bool) + func (n *Node) PropInherit(key string, inherit, typ bool) (interface{}, bool) + func (n *Node) PropTag() string + func (n *Node) Properties() *Props + func (n *Node) ReadJSON(reader io.Reader) error + func (n *Node) ReadXML(reader io.Reader) error + func (n *Node) Root() Ki + func (n *Node) SaveJSON(filename string) error + func (n *Node) SetChild(kid Ki, idx int, name string) error + func (n *Node) SetChildType(t reflect.Type) error + func (n *Node) SetField(field string, val interface{}) bool + func (n *Node) SetFieldDown(field string, val interface{}) + func (n *Node) SetFieldUp(field string, val interface{}) + func (n *Node) SetFlag(flag ...int) + func (n *Node) SetFlagMask(mask int64) + func (n *Node) SetFlagState(on bool, flag ...int) + func (n *Node) SetNChildren(trgn int, typ reflect.Type, nameStub string) (mods, updt bool) + func (n *Node) SetName(name string) bool + func (n *Node) SetNameRaw(name string) + func (n *Node) SetOnlySelfUpdate() + func (n *Node) SetParent(parent Ki) + func (n *Node) SetProp(key string, val interface{}) + func (n *Node) SetPropChildren(key string, val interface{}) + func (n *Node) SetPropUpdate(key string, val interface{}) + func (n *Node) SetProps(props Props, update bool) + func (n *Node) SetPtrsFmPaths() + func (n *Node) SetUniqueName(name string) + func (n *Node) This() Ki + func (n *Node) ThisCheck() error + func (n *Node) Type() reflect.Type + func (n *Node) TypeEmbeds(t reflect.Type) bool + func (n *Node) UniqueName() string + func (n *Node) UniquifyNames() + func (n *Node) UnmarshalPost() + func (n *Node) UpdateEnd(updt bool) + func (n *Node) UpdateEndNoSig(updt bool) + func (n *Node) UpdatePtrPaths(oldPath, newPath string, startOnly bool) + func (n *Node) UpdateReset() + func (n *Node) UpdateSig() bool + func (n *Node) UpdateStart() bool + func (n *Node) WriteJSON(writer io.Writer, indent bool) error + func (n *Node) WriteXML(writer io.Writer, indent bool) error + func (n Node) String() string + type NodeSignals int64 + const NodeSignalDeleting + const NodeSignalDestroying + const NodeSignalNil + const NodeSignalUpdated + const NodeSignalsN + func (i *NodeSignals) FromString(s string) error + func (i NodeSignals) String() string + type PropSlice []PropStruct + func SliceProps(pr map[string]interface{}, key string) (PropSlice, bool) + func SliceTypeProps(pr map[string]interface{}, key string) (PropSlice, bool) + func (dest *PropSlice) CopyFrom(src PropSlice, copySubProps bool) + type PropStruct struct + Name string + Value interface{} + type Props map[string]interface + func (dest *Props) CopyFrom(src map[string]interface{}, copySubProps bool) + func (p *Props) UnmarshalJSON(b []byte) error + func (p Props) MarshalJSON() ([]byte, error) + func SubProps(pr map[string]interface{}, key string) (Props, bool) + func SubTypeProps(pr map[string]interface{}, key string) (Props, bool) + type Ptr struct + Path string + Ptr Ki + func (k *Ptr) GetPath() + func (k *Ptr) PtrFmPath(root Ki) bool + func (k *Ptr) Reset() + func (k *Ptr) UnmarshalJSON(b []byte) error + func (k *Ptr) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error + func (k *Ptr) UpdatePath(oldPath, newPath string, startOnly bool) + func (k Ptr) MarshalJSON() ([]byte, error) + func (k Ptr) MarshalXML(e *xml.Encoder, start xml.StartElement) error + type RecvFunc func(recv, send Ki, sig int64, data interface{}) + type Signal struct + Cons map[Ki]RecvFunc + Mu sync.RWMutex + func (s *Signal) Connect(recv Ki, fun RecvFunc) + func (s *Signal) ConnectOnly(recv Ki, fun RecvFunc) + func (s *Signal) Disconnect(recv Ki) + func (s *Signal) DisconnectAll() + func (s *Signal) Emit(sender Ki, sig int64, data interface{}) + func (s *Signal) EmitFiltered(sender Ki, sig int64, data interface{}, filtFun SignalFilterFunc) + func (s *Signal) EmitGo(sender Ki, sig int64, data interface{}) + func (s *Signal) EmitGoFiltered(sender Ki, sig int64, data interface{}, filtFun SignalFilterFunc) + func (s *Signal) EmitTrace(sender Ki, sig int64, data interface{}) + func (s *Signal) SendSig(recv, sender Ki, sig int64, data interface{}) + type SignalFilterFunc func(recv Ki) bool + type Slice []Ki + func (sl *Slice) Config(n Ki, config kit.TypeAndNameList, uniqNm bool) (mods, updt bool) + func (sl *Slice) DeleteAtIndex(idx int) bool + func (sl *Slice) Elem(idx int) (Ki, bool) + func (sl *Slice) ElemByName(name string, startIdx int) (Ki, bool) + func (sl *Slice) ElemByType(t reflect.Type, embeds bool, startIdx int) (Ki, bool) + func (sl *Slice) ElemByUniqueName(name string, startIdx int) (Ki, bool) + func (sl *Slice) ElemFromEnd(idx int) (Ki, bool) + func (sl *Slice) IndexByFunc(startIdx int, match func(k Ki) bool) (int, bool) + func (sl *Slice) IndexByName(name string, startIdx int) (int, bool) + func (sl *Slice) IndexByType(t reflect.Type, embeds bool, startIdx int) (int, bool) + func (sl *Slice) IndexByUniqueName(name string, startIdx int) (int, bool) + func (sl *Slice) IndexOf(kid Ki, startIdx int) (int, bool) + func (sl *Slice) Insert(k Ki, idx int) + func (sl *Slice) KnownElemByName(name string, startIdx int) Ki + func (sl *Slice) Move(from, to int) bool + func (sl *Slice) NameToIndexMap() map[string]int + func (sl *Slice) TypeAndNames() kit.TypeAndNameList + func (sl *Slice) TypeAndUniqueNames() kit.TypeAndNameList + func (sl *Slice) UniqueNameToIndexMap() map[string]int + func (sl *Slice) UnmarshalJSON(b []byte) error + func (sl *Slice) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error + func (sl Slice) IsValidIndex(idx int) bool + func (sl Slice) MarshalJSON() ([]byte, error) + func (sl Slice) MarshalXML(e *xml.Encoder, start xml.StartElement) error