From 04a94a0a81db9a63de4b7c62f70a05dfa6ed56ee Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 31 Jan 2025 21:06:25 -0600 Subject: [PATCH] Notes removed by 'git notes remove' --- eabc96ac94aaeb6538212d644cc4bcfd512934ae | 984 ----------------------- 1 file changed, 984 deletions(-) delete mode 100644 eabc96ac94aaeb6538212d644cc4bcfd512934ae diff --git a/eabc96ac94aaeb6538212d644cc4bcfd512934ae b/eabc96ac94aaeb6538212d644cc4bcfd512934ae deleted file mode 100644 index 7808204..0000000 --- a/eabc96ac94aaeb6538212d644cc4bcfd512934ae +++ /dev/null @@ -1,984 +0,0 @@ -// `autogen:go.mod` - -module go.wit.com/toolkits/gocui - -go 1.21 - -toolchain go1.23.4 - -require ( - github.com/awesome-gocui/gocui v1.1.0 - go.wit.com/log v0.22.10 - go.wit.com/toolkits/tree v0.22.4 - go.wit.com/widget v1.1.27 - google.golang.org/protobuf v1.36.4 -) - -require ( - github.com/gdamore/encoding v1.0.0 // indirect - github.com/gdamore/tcell/v2 v2.4.0 // indirect - github.com/lucasb-eyer/go-colorful v1.0.3 // indirect - github.com/mattn/go-runewidth v0.0.10 // indirect - github.com/rivo/uniseg v0.1.0 // indirect - golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 // indirect - golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf // indirect - golang.org/x/text v0.3.3 // indirect -) - -// `autogen:go.sum` - -github.com/awesome-gocui/gocui v1.1.0 h1:db2j7yFEoHZjpQFeE2xqiatS8bm1lO3THeLwE6MzOII= -github.com/awesome-gocui/gocui v1.1.0/go.mod h1:M2BXkrp7PR97CKnPRT7Rk0+rtswChPtksw/vRAESGpg= -github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= -github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= -github.com/gdamore/tcell/v2 v2.4.0 h1:W6dxJEmaxYvhICFoTY3WrLLEXsQ11SaFnKGVEXW57KM= -github.com/gdamore/tcell/v2 v2.4.0/go.mod h1:cTTuF84Dlj/RqmaCIV5p4w8uG1zWdk0SF6oBpwHp4fU= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= -github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/mattn/go-runewidth v0.0.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg= -github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -go.wit.com/log v0.22.10 h1:rlSgaYjvxbpcmi9UBQO3ESmbd/jiyFdRQFoGOvpCEUc= -go.wit.com/log v0.22.10/go.mod h1:4uNPFBqhsAh8zNF+zxVEmC3c/9AZ8JeTfUUvRpddvLQ= -go.wit.com/toolkits/tree v0.22.4 h1:yhefolodEfE4+Lmxxhh8fO6+UMjK9TGHuB71Lfg4rcQ= -go.wit.com/toolkits/tree v0.22.4/go.mod h1:b/GAcO13PIv7tx1aSrWv8ALK+ZEk5j78PEdEGaZ4PPA= -go.wit.com/widget v1.1.27 h1:Yd+qp6GZVwLiTTepShXSeWSDqjaCxLyfhU0ch2FrPZ8= -go.wit.com/widget v1.1.27/go.mod h1:OXIdWk7GhVJRLnHTvf45LbPNXGYG/JjbkfnmXtkoiYE= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf h1:MZ2shdL+ZM/XzY3ZGOnh4Nlpnxz5GSOhOmtHo3iPU6M= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= -google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= - -// `autogen:view.marshal.pb.go` - -// Code generated by go.wit.com/apps/autogenpb DO NOT EDIT. -// This file was autogenerated with autogenpb v0.0.48 2025-01-28_20:32:42_UTC -// go install go.wit.com/apps/autogenpb@latest -// -// define which structs (messages) you want to use in the .proto file -// Then sort.pb.go and marshal.pb.go files are autogenerated -// -// autogenpb uses it and has an example .proto file with instructions -// - -package main - -import ( - "google.golang.org/protobuf/encoding/protojson" - "google.golang.org/protobuf/encoding/prototext" - "google.golang.org/protobuf/proto" -) - -// human readable JSON -func (v *Views) FormatJSON() string { - return protojson.Format(v) -} - -// marshal json -func (v *Views) MarshalJSON() ([]byte, error) { - return protojson.Marshal(v) -} - -// unmarshal json -func (v *Views) UnmarshalJSON(data []byte) error { - return protojson.Unmarshal(data, v) -} - -// apparently this isn't stable, but it's awesomely better -// https://protobuf.dev/reference/go/faq/#unstable-text -// it's brilliant for config files! -func (v *Views) FormatTEXT() string { - v.fixUuid() - return prototext.Format(v) -} - -// unmarshalTEXT. This reads the .text config file back in after the user edits it -func (v *Views) UnmarshalTEXT(data []byte) error { - return prototext.Unmarshal(data, v) -} - -// marshal to wire. This is called winning. -func (v *Views) Marshal() ([]byte, error) { - v.fixUuid() - return proto.Marshal(v) -} - -// unmarshal from wire. You have won. -func (v *Views) Unmarshal(data []byte) error { - return proto.Unmarshal(data, v) -} - -// `autogen:view.pb.go` - -// Code modified by go.wit.com/apps/autogenpb DO NOT EDIT. -// -// user defined Mutex locks were auto added -// -// autogenpb version & build time: v0.0.48 2025-01-28_20:32:42_UTC -// autogenpb auto generates Sort(), Unique() and Marshal() functions -// go install go.wit.com/apps/autogenpb@latest - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2-devel -// protoc v3.21.12 -// source: view.proto - -package main // autogenpb changed the package name - -import ( - reflect "reflect" - sync "sync" - - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/timestamppb" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// maybe put all the gocui specific stuff here. -type GocuiState struct { - // sync.RWMutex // skipped. protobuf file has `autogenpb:nomutex` - - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Visible bool `protobuf:"varint,1,opt,name=visible,proto3" json:"visible,omitempty"` - Internal bool `protobuf:"varint,2,opt,name=internal,proto3" json:"internal,omitempty"` - W0 int64 `protobuf:"varint,3,opt,name=w0,proto3" json:"w0,omitempty"` - H0 int64 `protobuf:"varint,4,opt,name=h0,proto3" json:"h0,omitempty"` - W1 int64 `protobuf:"varint,5,opt,name=w1,proto3" json:"w1,omitempty"` - H1 int64 `protobuf:"varint,6,opt,name=h1,proto3" json:"h1,omitempty"` -} - -func (x *GocuiState) Reset() { - *x = GocuiState{} - mi := &file_view_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GocuiState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GocuiState) ProtoMessage() {} - -func (x *GocuiState) ProtoReflect() protoreflect.Message { - mi := &file_view_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GocuiState.ProtoReflect.Descriptor instead. -func (*GocuiState) Descriptor() ([]byte, []int) { - return file_view_proto_rawDescGZIP(), []int{0} -} - -func (x *GocuiState) GetVisible() bool { - if x != nil { - return x.Visible - } - return false -} - -func (x *GocuiState) GetInternal() bool { - if x != nil { - return x.Internal - } - return false -} - -func (x *GocuiState) GetW0() int64 { - if x != nil { - return x.W0 - } - return 0 -} - -func (x *GocuiState) GetH0() int64 { - if x != nil { - return x.H0 - } - return 0 -} - -func (x *GocuiState) GetW1() int64 { - if x != nil { - return x.W1 - } - return 0 -} - -func (x *GocuiState) GetH1() int64 { - if x != nil { - return x.H1 - } - return 0 -} - -type ViewSettings struct { - // sync.RWMutex // skipped. protobuf file has `autogenpb:nomutex` - - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pack bool `protobuf:"varint,1,opt,name=pack,proto3" json:"pack,omitempty"` - Framesize int64 `protobuf:"varint,5,opt,name=framesize,proto3" json:"framesize,omitempty"` -} - -func (x *ViewSettings) Reset() { - *x = ViewSettings{} - mi := &file_view_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ViewSettings) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ViewSettings) ProtoMessage() {} - -func (x *ViewSettings) ProtoReflect() protoreflect.Message { - mi := &file_view_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ViewSettings.ProtoReflect.Descriptor instead. -func (*ViewSettings) Descriptor() ([]byte, []int) { - return file_view_proto_rawDescGZIP(), []int{1} -} - -func (x *ViewSettings) GetPack() bool { - if x != nil { - return x.Pack - } - return false -} - -func (x *ViewSettings) GetFramesize() int64 { - if x != nil { - return x.Framesize - } - return 0 -} - -type Tree struct { - sync.RWMutex // auto-added by go.wit.com/apps/autogenpb - - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Parent *View `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` - Children []*View `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"` - Node *View `protobuf:"bytes,3,opt,name=node,proto3" json:"node,omitempty"` -} - -func (x *Tree) Reset() { - *x = Tree{} - mi := &file_view_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Tree) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Tree) ProtoMessage() {} - -func (x *Tree) ProtoReflect() protoreflect.Message { - mi := &file_view_proto_msgTypes[2] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Tree.ProtoReflect.Descriptor instead. -func (*Tree) Descriptor() ([]byte, []int) { - return file_view_proto_rawDescGZIP(), []int{2} -} - -func (x *Tree) GetParent() *View { - if x != nil { - return x.Parent - } - return nil -} - -func (x *Tree) GetChildren() []*View { - if x != nil { - return x.Children - } - return nil -} - -func (x *Tree) GetNode() *View { - if x != nil { - return x.Node - } - return nil -} - -// this is the gocui 'view' in binary tree form -type View struct { - sync.RWMutex // auto-added by go.wit.com/apps/autogenpb - - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - WidgetId int64 `protobuf:"varint,3,opt,name=widgetId,proto3" json:"widgetId,omitempty"` // `autogenpb:unique` `autogenpb:sort` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` // `autogenpb:unique` `autogenpb:sort` - State *GocuiState `protobuf:"bytes,7,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *View) Reset() { - *x = View{} - mi := &file_view_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *View) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*View) ProtoMessage() {} - -func (x *View) ProtoReflect() protoreflect.Message { - mi := &file_view_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use View.ProtoReflect.Descriptor instead. -func (*View) Descriptor() ([]byte, []int) { - return file_view_proto_rawDescGZIP(), []int{3} -} - -func (x *View) GetWidgetId() int64 { - if x != nil { - return x.WidgetId - } - return 0 -} - -func (x *View) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *View) GetState() *GocuiState { - if x != nil { - return x.State - } - return nil -} - -type Views struct { - sync.RWMutex // auto-added by go.wit.com/apps/autogenpb - - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // `autogenpb:uuid:d19c1fbb-32c2-4957-aee6-f8128a511dca` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // `autogenpb:version:v0.0.1` - Views []*View `protobuf:"bytes,3,rep,name=Views,proto3" json:"Views,omitempty"` - Tree *Tree `protobuf:"bytes,4,opt,name=tree,proto3" json:"tree,omitempty"` - Junk map[string]string `protobuf:"bytes,5,rep,name=junk,proto3" json:"junk,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Settings *ViewSettings `protobuf:"bytes,6,opt,name=settings,proto3" json:"settings,omitempty"` -} - -func (x *Views) Reset() { - *x = Views{} - mi := &file_view_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Views) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Views) ProtoMessage() {} - -func (x *Views) ProtoReflect() protoreflect.Message { - mi := &file_view_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Views.ProtoReflect.Descriptor instead. -func (*Views) Descriptor() ([]byte, []int) { - return file_view_proto_rawDescGZIP(), []int{4} -} - -func (x *Views) GetUuid() string { - if x != nil { - return x.Uuid - } - return "" -} - -func (x *Views) GetVersion() string { - if x != nil { - return x.Version - } - return "" -} - -func (x *Views) GetViews() []*View { - if x != nil { - return x.Views - } - return nil -} - -func (x *Views) GetTree() *Tree { - if x != nil { - return x.Tree - } - return nil -} - -func (x *Views) GetJunk() map[string]string { - if x != nil { - return x.Junk - } - return nil -} - -func (x *Views) GetSettings() *ViewSettings { - if x != nil { - return x.Settings - } - return nil -} - -var File_view_proto protoreflect.FileDescriptor - -var file_view_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x6d, 0x61, - 0x69, 0x6e, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x63, 0x75, 0x69, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x77, 0x30, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x77, 0x30, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x30, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x68, 0x30, 0x12, 0x0e, 0x0a, 0x02, 0x77, 0x31, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x77, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x31, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x68, 0x31, 0x22, 0x40, 0x0a, 0x0c, 0x56, 0x69, 0x65, 0x77, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x63, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x70, 0x61, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x54, 0x72, - 0x65, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x56, 0x69, 0x65, 0x77, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x1e, - 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x5e, - 0x0a, 0x04, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x47, 0x6f, 0x63, - 0x75, 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x8b, - 0x02, 0x0a, 0x05, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x05, 0x56, 0x69, 0x65, 0x77, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x56, 0x69, 0x65, - 0x77, 0x52, 0x05, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x74, 0x72, 0x65, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x54, 0x72, - 0x65, 0x65, 0x52, 0x04, 0x74, 0x72, 0x65, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6a, 0x75, 0x6e, 0x6b, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x56, 0x69, - 0x65, 0x77, 0x73, 0x2e, 0x4a, 0x75, 0x6e, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6a, - 0x75, 0x6e, 0x6b, 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x56, 0x69, 0x65, - 0x77, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x4a, 0x75, 0x6e, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_view_proto_rawDescOnce sync.Once - file_view_proto_rawDescData = file_view_proto_rawDesc -) - -func file_view_proto_rawDescGZIP() []byte { - file_view_proto_rawDescOnce.Do(func() { - file_view_proto_rawDescData = protoimpl.X.CompressGZIP(file_view_proto_rawDescData) - }) - return file_view_proto_rawDescData -} - -var file_view_proto_msgTypes = make([]protoimpl.MessageInfo, 6) -var file_view_proto_goTypes = []any{ - (*GocuiState)(nil), // 0: main.GocuiState - (*ViewSettings)(nil), // 1: main.ViewSettings - (*Tree)(nil), // 2: main.Tree - (*View)(nil), // 3: main.View - (*Views)(nil), // 4: main.Views - nil, // 5: main.Views.JunkEntry -} -var file_view_proto_depIdxs = []int32{ - 3, // 0: main.Tree.parent:type_name -> main.View - 3, // 1: main.Tree.children:type_name -> main.View - 3, // 2: main.Tree.node:type_name -> main.View - 0, // 3: main.View.state:type_name -> main.GocuiState - 3, // 4: main.Views.Views:type_name -> main.View - 2, // 5: main.Views.tree:type_name -> main.Tree - 5, // 6: main.Views.junk:type_name -> main.Views.JunkEntry - 1, // 7: main.Views.settings:type_name -> main.ViewSettings - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name -} - -func init() { file_view_proto_init() } -func file_view_proto_init() { - if File_view_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_view_proto_rawDesc, - NumEnums: 0, - NumMessages: 6, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_view_proto_goTypes, - DependencyIndexes: file_view_proto_depIdxs, - MessageInfos: file_view_proto_msgTypes, - }.Build() - File_view_proto = out.File - file_view_proto_rawDesc = nil - file_view_proto_goTypes = nil - file_view_proto_depIdxs = nil -} - -// `autogen:view.sort.pb.go` - -// Code generated by go.wit.com/apps/autogenpb DO NOT EDIT. -// This file was autogenerated with autogenpb v0.0.48 2025-01-28_20:32:42_UTC -// go install go.wit.com/apps/autogenpb@latest -// -// define which structs (messages) you want to use in the .proto file -// Then sort.pb.go and marshal.pb.go files are autogenerated -// -// autogenpb uses it and has an example .proto file with instructions -// - -package main - -import ( - "fmt" - "sort" - "sync" -) - -// a simple global lock -var viewMu sync.RWMutex - -func (x *Views) fixUuid() { - if x == nil { - return - } - if x.Uuid == "d19c1fbb-32c2-4957-aee6-f8128a511dca" { - return - } - x.Uuid = "d19c1fbb-32c2-4957-aee6-f8128a511dca" - x.Version = "v0.0.1 go.wit.com/toolkits/gocui" -} - -func NewViews() *Views { - x := new(Views) - x.Uuid = "d19c1fbb-32c2-4957-aee6-f8128a511dca" - x.Version = "v0.0.1 go.wit.com/toolkits/gocui" - return x -} - -// START SORT - -// DEFINE THE Views ITERATOR. -// itializes a new iterator. -func newViewsIterator(things []*Views) *ViewsIterator { - return &ViewsIterator{things: things} -} - -type ViewsIterator struct { - sync.RWMutex // this isn't getting used properly yet? - - things []*Views - index int -} - -func (it *ViewsIterator) Scan() bool { - if it.index >= len(it.things) { - return false - } - it.index++ - return true -} - -// Next() returns the next thing in the array -func (it *ViewsIterator) Next() *Views { - if it.things[it.index-1] == nil { - fmt.Println("Next() error in ViewsIterator", it.index) - } - return it.things[it.index-1] -} - -// END DEFINE THE ITERATOR - -// DEFINE THE View ITERATOR. -// itializes a new iterator. -func newViewIterator(things []*View) *ViewIterator { - return &ViewIterator{things: things} -} - -type ViewIterator struct { - sync.RWMutex // this isn't getting used properly yet? - - things []*View - index int -} - -func (it *ViewIterator) Scan() bool { - if it.index >= len(it.things) { - return false - } - it.index++ - return true -} - -// Next() returns the next thing in the array -func (it *ViewIterator) Next() *View { - if it.things[it.index-1] == nil { - fmt.Println("Next() error in ViewIterator", it.index) - } - return it.things[it.index-1] -} - -// END DEFINE THE ITERATOR - -// DEFINE THE GocuiState ITERATOR. -// itializes a new iterator. -func newGocuiStateIterator(things []*GocuiState) *GocuiStateIterator { - return &GocuiStateIterator{things: things} -} - -type GocuiStateIterator struct { - sync.RWMutex // this isn't getting used properly yet? - - things []*GocuiState - index int -} - -func (it *GocuiStateIterator) Scan() bool { - if it.index >= len(it.things) { - return false - } - it.index++ - return true -} - -// Next() returns the next thing in the array -func (it *GocuiStateIterator) Next() *GocuiState { - if it.things[it.index-1] == nil { - fmt.Println("Next() error in GocuiStateIterator", it.index) - } - return it.things[it.index-1] -} - -// END DEFINE THE ITERATOR - -// DEFINE THE ViewSettings ITERATOR. -// itializes a new iterator. -func newViewSettingsIterator(things []*ViewSettings) *ViewSettingsIterator { - return &ViewSettingsIterator{things: things} -} - -type ViewSettingsIterator struct { - sync.RWMutex // this isn't getting used properly yet? - - things []*ViewSettings - index int -} - -func (it *ViewSettingsIterator) Scan() bool { - if it.index >= len(it.things) { - return false - } - it.index++ - return true -} - -// Next() returns the next thing in the array -func (it *ViewSettingsIterator) Next() *ViewSettings { - if it.things[it.index-1] == nil { - fmt.Println("Next() error in ViewSettingsIterator", it.index) - } - return it.things[it.index-1] -} - -// END DEFINE THE ITERATOR - -// DEFINE THE Tree ITERATOR. -// itializes a new iterator. -func newTreeIterator(things []*Tree) *TreeIterator { - return &TreeIterator{things: things} -} - -type TreeIterator struct { - sync.RWMutex // this isn't getting used properly yet? - - things []*Tree - index int -} - -func (it *TreeIterator) Scan() bool { - if it.index >= len(it.things) { - return false - } - it.index++ - return true -} - -// Next() returns the next thing in the array -func (it *TreeIterator) Next() *Tree { - if it.things[it.index-1] == nil { - fmt.Println("Next() error in TreeIterator", it.index) - } - return it.things[it.index-1] -} - -// END DEFINE THE ITERATOR - -// sort struct by Name -type ViewName []*View - -func (a ViewName) Len() int { return len(a) } -func (a ViewName) Less(i, j int) bool { return a[i].Name < a[j].Name } -func (a ViewName) Swap(i, j int) { a[i], a[j] = a[j], a[i] } - -// safely returns a slice of pointers to the FRUIT protobufs -func (x *Views) allViews() []*View { - x.RLock() - defer x.RUnlock() - - // Create a new slice to hold pointers to each FRUIT - var tmp []*View - tmp = make([]*View, len(x.Views)) - for i, p := range x.Views { - tmp[i] = p // Copy pointers for safe iteration - } - - return tmp -} - -// safely returns a slice of pointers to the FRUIT protobufs -func (x *Tree) allChildren() []*View { - x.RLock() - defer x.RUnlock() - - // Create a new slice to hold pointers to each FRUIT - var tmp []*View - tmp = make([]*View, len(x.Children)) - for i, p := range x.Children { - tmp[i] = p // Copy pointers for safe iteration - } - - return tmp -} - -// safely returns a slice of pointers to the View protobufs -func (x *Views) selectAllViews() []*View { - x.RLock() - defer x.RUnlock() - - // Create a new slice to hold pointers to each View - var tmp []*View - tmp = make([]*View, len(x.Views)) - for i, p := range x.Views { - tmp[i] = p // Copy pointers for safe iteration - } - - return tmp -} - -// safely returns a slice of pointers to the View protobufs -func (x *Tree) selectAllChildren() []*View { - x.RLock() - defer x.RUnlock() - - // Create a new slice to hold pointers to each View - var tmp []*View - tmp = make([]*View, len(x.Children)) - for i, p := range x.Children { - tmp[i] = p // Copy pointers for safe iteration - } - - return tmp -} -func (x *Views) SortByName() *ViewIterator { - // copy the pointers as fast as possible. - things := x.selectAllViews() - - // todo: try slices.SortFunc() instead to see what happens - sort.Sort(ViewName(things)) - // slices.SortFunc(things, func(a, b *Views) bool { - // return a.Name < b.Name // Sort by ??. let the compiler work it out?? - // }) - return newViewIterator(things) -} - -// END SORT - -func (x *Views) Len() int { - x.RLock() - defer x.RUnlock() - - return len(x.Views) -} - -// just a simple Append() shortcut (but still uses the mutex lock) -func (x *Views) Append(y *View) { - x.Lock() - defer x.Unlock() - - x.Views = append(x.Views, y) -} - -func (x *Views) All() *ViewIterator { - ViewPointers := x.selectAllViews() - - iterator := newViewIterator(ViewPointers) - return iterator -} - -func (x *Views) Delete(y *View) bool { - x.Lock() - defer x.Unlock() - - for i, _ := range x.Views { - if x.Views[i] == y { - x.Views[i] = x.Views[len(x.Views)-1] - x.Views = x.Views[:len(x.Views)-1] - return true - } - } - return false -} - -// lookup a Views by the Name -func (x *Views) FindByName(s string) *View { - if x == nil { - return nil - } - - x.RLock() - defer x.RUnlock() - - for i, _ := range x.Views { - if x.Views[i].Name == s { - return x.Views[i] - } - } - return nil -} - -func (x *Views) DeleteByName(s string) bool { - x.Lock() - defer x.Unlock() - - for i, _ := range x.Views { - if x.Views[i].Name == s { - x.Views[i] = x.Views[len(x.Views)-1] - x.Views = x.Views[:len(x.Views)-1] - return true - } - } - return false -} - -func (x *Views) AppendByName(y *View) bool { - x.Lock() - defer x.Unlock() - - for _, p := range x.Views { - if p.Name == y.Name { - return false - } - } - - x.Views = append(x.Views, y) - return true -} - -// `autogen:`