saving changes to pb
This commit is contained in:
parent
41aa46ce83
commit
fb10041e71
2
Makefile
2
Makefile
@ -2,7 +2,7 @@ all: avro flatbuffers protobuf
|
||||
|
||||
avro: twt-avro/gen.go
|
||||
twt-avro/gen.go: lextwt.avro
|
||||
go tool avro gen -pkg twt_avro -encoders lextwt.avro > twt-avro/gen.go
|
||||
go tool avrogen -pkg twt_avro -encoders lextwt.avro > twt-avro/gen.go
|
||||
|
||||
|
||||
flatbuffers: twt-fbs/lextwt
|
||||
|
23
go.mod
23
go.mod
@ -10,25 +10,25 @@ tool (
|
||||
google.golang.org/protobuf/cmd/protoc-gen-go
|
||||
)
|
||||
|
||||
require github.com/hamba/avro/v2 v2.28.0
|
||||
require (
|
||||
github.com/davecgh/go-spew v1.1.1
|
||||
github.com/google/flatbuffers v25.2.10+incompatible
|
||||
github.com/hamba/avro/v2 v2.28.0
|
||||
go.yarn.social/types v0.0.0-20250108134258-ed75fa653ede
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/SpirentOrion/go-avrogrpc v0.0.0-20201103153720-fba312c1a9f5 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/ettle/strcase v0.2.0 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/flatbuffers v25.2.10+incompatible // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||
github.com/linkedin/goavro/v2 v2.9.8 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/sirupsen/logrus v1.9.3 // indirect
|
||||
github.com/writeas/go-strip-markdown/v2 v2.1.1 // indirect
|
||||
go.yarn.social/types v0.0.0-20250108134258-ed75fa653ede // indirect
|
||||
golang.org/x/crypto v0.33.0 // indirect
|
||||
golang.org/x/crypto v0.36.0 // indirect
|
||||
golang.org/x/mod v0.23.0 // indirect
|
||||
golang.org/x/tools v0.30.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
require (
|
||||
@ -69,13 +69,12 @@ require (
|
||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
||||
github.com/rivo/uniseg v0.4.7 // indirect
|
||||
github.com/samber/lo v1.49.1 // indirect
|
||||
github.com/stretchr/testify v1.10.0
|
||||
go.yarn.social/lextwt v0.1.4
|
||||
golang.org/x/arch v0.14.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect
|
||||
golang.org/x/net v0.35.0 // indirect
|
||||
golang.org/x/sync v0.11.0 // indirect
|
||||
golang.org/x/sys v0.30.0 // indirect
|
||||
golang.org/x/text v0.22.0 // indirect
|
||||
google.golang.org/protobuf v1.36.5 // indirect
|
||||
golang.org/x/sync v0.12.0 // indirect
|
||||
golang.org/x/sys v0.31.0 // indirect
|
||||
golang.org/x/text v0.23.0 // indirect
|
||||
google.golang.org/protobuf v1.36.5
|
||||
)
|
||||
|
39
go.sum
39
go.sum
@ -10,10 +10,16 @@ github.com/ZxillyFork/gosym v0.0.0-20240510024817-deed2b882525 h1:JtN7QBnRxeyMvD
|
||||
github.com/ZxillyFork/gosym v0.0.0-20240510024817-deed2b882525/go.mod h1:AC2xDL/KBa60pBB/m0zRCDCGvzLrMkmW/aY0q+uThFE=
|
||||
github.com/ZxillyFork/trie v0.0.0-20240512061834-f75150731646 h1:Mkm17zXN+CiAXdV9/7mdCUGuEzlUNu73mB6En++kUkE=
|
||||
github.com/ZxillyFork/trie v0.0.0-20240512061834-f75150731646/go.mod h1:wbU6+GbSHDwVSMpzFyOVrX/WdFHXH4j7j8Rg8rbyo+4=
|
||||
github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
|
||||
github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
|
||||
github.com/alecthomas/kong v1.8.1 h1:6aamvWBE/REnR/BCq10EcozmcpUPc5aGI1lPAWdB0EE=
|
||||
github.com/alecthomas/kong v1.8.1/go.mod h1:p2vqieVMeTAnaC83txKtXe8FLke2X07aruPWXyMPQrU=
|
||||
github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
|
||||
github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
|
||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
|
||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
|
||||
github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8=
|
||||
github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA=
|
||||
github.com/blacktop/go-dwarf v1.0.10 h1:i9zYgcIROETsNZ6V+zZn3uDH21FCG5BLLZ837GitxS0=
|
||||
github.com/blacktop/go-dwarf v1.0.10/go.mod h1:4W2FKgSFYcZLDwnR7k+apv5i3nrau4NGl9N6VQ9DSTo=
|
||||
github.com/blacktop/go-macho v1.1.238 h1:OFfT6NB/SWxkoky7L/ytuY8QekgFpa9pmz/GHUQLsmM=
|
||||
@ -27,6 +33,10 @@ github.com/charmbracelet/lipgloss v1.0.0 h1:O7VkGDvqEdGi93X+DeqsQ7PKHDgtQfF8j8/O
|
||||
github.com/charmbracelet/lipgloss v1.0.0/go.mod h1:U5fy9Z+C38obMs+T+tJqst9VGzlOYGj4ri9reL3qUlo=
|
||||
github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE=
|
||||
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
|
||||
github.com/charmbracelet/x/exp/golden v0.0.0-20250213125511-a0c32e22e4fc h1:Tp8vprGbBhTAeyCNgrWPYIPyVEo9qmFRAcRhSdeind4=
|
||||
github.com/charmbracelet/x/exp/golden v0.0.0-20250213125511-a0c32e22e4fc/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
|
||||
github.com/charmbracelet/x/exp/teatest v0.0.0-20250213125511-a0c32e22e4fc h1:p4x5lOqNZEELobbdrm00kW5xrQwXZtIrUW8yTPK16aU=
|
||||
github.com/charmbracelet/x/exp/teatest v0.0.0-20250213125511-a0c32e22e4fc/go.mod h1:ag+SpTUkiN/UuUGYPX3Ci4fR1oF3XX97PpGhiXK7i6U=
|
||||
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
|
||||
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
@ -60,8 +70,8 @@ github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6F
|
||||
github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
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/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/hamba/avro v1.8.0 h1:eCVrLX7UYThA3R3yBZ+rpmafA5qTc3ZjpTz6gYJoVGU=
|
||||
@ -73,6 +83,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
|
||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
|
||||
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
|
||||
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
|
||||
github.com/jedib0t/go-pretty/v6 v6.6.6 h1:LyezkL+1SuqH2z47e5IMQkYUIcs2BD+MnpdPRiRcN0c=
|
||||
github.com/jedib0t/go-pretty/v6 v6.6.6/go.mod h1:YwC5CE4fJ1HFUDeivSV1r//AmANFHyqczZk+U6BDALU=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
@ -123,6 +135,8 @@ github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
@ -131,10 +145,6 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/writeas/go-strip-markdown/v2 v2.1.1 h1:hAxUM21Uhznf/FnbVGiJciqzska6iLei22Ijc3q2e28=
|
||||
github.com/writeas/go-strip-markdown/v2 v2.1.1/go.mod h1:UvvgPJgn1vvN8nWuE5e7v/+qmDu3BSVnKAB6Gl7hFzA=
|
||||
go.yarn.social/lextwt v0.1.1 h1:afyIZGvHBOZ81LD1OVg9wzP032+9sEihEHX7IdHkkPg=
|
||||
go.yarn.social/lextwt v0.1.1/go.mod h1:JOPCOh+3bHv+BMaFZpKzw6soiXbIlZD5b2f7YKDDjqk=
|
||||
go.yarn.social/lextwt v0.1.2 h1:hQYWMJmH2ziKsbFtqpf1eylGKq+CDSeQNtRW3rYL+kM=
|
||||
go.yarn.social/lextwt v0.1.2/go.mod h1:JOPCOh+3bHv+BMaFZpKzw6soiXbIlZD5b2f7YKDDjqk=
|
||||
go.yarn.social/lextwt v0.1.4 h1:3p3GNzIcumDk+hwBHT8F0ySAcdPpP/wQz2WnczSTv+o=
|
||||
go.yarn.social/lextwt v0.1.4/go.mod h1:JOPCOh+3bHv+BMaFZpKzw6soiXbIlZD5b2f7YKDDjqk=
|
||||
go.yarn.social/types v0.0.0-20250108134258-ed75fa653ede h1:XV9tuDQ605xxH4qIQPRHM1bOa7k0rJZ2RqA5kz2Nun4=
|
||||
@ -142,8 +152,8 @@ go.yarn.social/types v0.0.0-20250108134258-ed75fa653ede/go.mod h1:+xnDkQ0T0S8emx
|
||||
golang.org/x/arch v0.14.0 h1:z9JUEZWr8x4rR0OU6c4/4t6E6jOZ8/QBS2bBYBm4tx4=
|
||||
golang.org/x/arch v0.14.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
|
||||
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
|
||||
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
|
||||
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs=
|
||||
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo=
|
||||
@ -162,26 +172,25 @@ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAG
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
|
||||
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
|
||||
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
|
||||
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
|
||||
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
|
||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=
|
||||
golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY=
|
||||
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/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
|
62
go.work.sum
Normal file
62
go.work.sum
Normal file
@ -0,0 +1,62 @@
|
||||
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
|
||||
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
|
||||
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
||||
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
|
||||
github.com/badgerodon/ioutil v0.0.0-20150716134133-06e58e34b867/go.mod h1:Ctq1YQi0dOq7QgBLZZ7p1Fr3IbAAqL/yMqDIHoe9WtE=
|
||||
github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao=
|
||||
github.com/cilium/ebpf v0.11.0/go.mod h1:WE7CZAnqOL2RouJ4f1uyNhqr2P4CCvXFIqdRDUgWsVs=
|
||||
github.com/cloudflare/circl v1.5.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
|
||||
github.com/cosiner/argv v0.1.0/go.mod h1:EusR6TucWKX+zFgtdUsKT2Cvg45K5rtpCcWz4hK06d8=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/creack/pty v1.1.20/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
|
||||
github.com/cyphar/filepath-securejoin v0.3.4/go.mod h1:8s/MCNJREmFK0H02MF6Ihv1nakJe4L/w3WZLHNkvlYM=
|
||||
github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d/go.mod h1:C7Es+DLenIpPc9J6IYw4jrK0h7S9bKj4DNl8+KxGEXU=
|
||||
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
||||
github.com/felixge/fgprof v0.9.5/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM=
|
||||
github.com/go-delve/liner v1.2.3-0.20231231155935-4726ab1d7f62/go.mod h1:biJCRbqp51wS+I92HMqn5H8/A0PAhxn2vyOT+JqhiGI=
|
||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
|
||||
github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
|
||||
github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY=
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/google/go-dap v0.12.0/go.mod h1:tNjCASCm5cqePi/RVXXWEVqtnNLV1KTWtYOqu6rZNzc=
|
||||
github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik=
|
||||
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
|
||||
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
|
||||
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||
github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo=
|
||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sahilm/fuzzy v0.1.1/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
|
||||
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
|
||||
github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M=
|
||||
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
go.starlark.net v0.0.0-20231101134539-556fd59b42f6/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM=
|
||||
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0=
|
||||
golang.org/x/telemetry v0.0.0-20241106142447-58a1122356f5/go.mod h1:8nZWdGp9pq73ZI//QJyckMQab3yq7hoWi7SI0UIusVI=
|
||||
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
|
||||
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
|
||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
|
||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
|
||||
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
|
||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
BIN
lextwt-encoding
BIN
lextwt-encoding
Binary file not shown.
236
lextwt.avpr
Normal file
236
lextwt.avpr
Normal file
@ -0,0 +1,236 @@
|
||||
{
|
||||
"namespace": "social.yarn.lextwt",
|
||||
"protocol": "Twtxt",
|
||||
"doc": "Protocol Twtxt",
|
||||
|
||||
"messages": {
|
||||
|
||||
}
|
||||
|
||||
"types": [
|
||||
{
|
||||
"type": "record",
|
||||
"name": "registry",
|
||||
"fields": [
|
||||
{
|
||||
"name":"twts",
|
||||
"type":{
|
||||
"type":"array",
|
||||
"items": {
|
||||
"type": "record",
|
||||
"name": "twt",
|
||||
"fields": [
|
||||
{
|
||||
"name": "nick",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "uri",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "created",
|
||||
"type": "long",
|
||||
"logicalType": "timestamp-millis"
|
||||
},
|
||||
{
|
||||
"name": "createdZone",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "createdOffset",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "msg",
|
||||
"type": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"name": "elem",
|
||||
"type": [
|
||||
"null",
|
||||
"string",
|
||||
{
|
||||
"type": "record",
|
||||
"name": "linesep",
|
||||
"fields": []
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "comment",
|
||||
"fields": [
|
||||
{
|
||||
"name": "comment",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "key",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "value",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "mention",
|
||||
"fields": [
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "domain",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "target",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "bangmention",
|
||||
"fields": [
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "target",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "hashtag",
|
||||
"fields": [
|
||||
{
|
||||
"name": "tag",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "target",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "subject",
|
||||
"fields": [
|
||||
{
|
||||
"name": "subject",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "tag",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "target",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "link",
|
||||
"fields": [
|
||||
{
|
||||
"name": "linkType",
|
||||
"type": "int",
|
||||
"logicalType": "int8"
|
||||
},
|
||||
{
|
||||
"name": "text",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "target",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "code",
|
||||
"fields": [
|
||||
{
|
||||
"name": "code",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "codetype",
|
||||
"type": "int",
|
||||
"logicalType": "int8"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "preamble",
|
||||
"type": {
|
||||
"type":"array",
|
||||
"items": "social.yarn.lextwt.comment"
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "feed",
|
||||
"fields": [
|
||||
{
|
||||
"name": "twter",
|
||||
"type": {
|
||||
"type": "record",
|
||||
"name": "twter",
|
||||
"fields": [
|
||||
{
|
||||
"name": "nick",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "uri",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "preamble",
|
||||
"type": {
|
||||
"type":"array",
|
||||
"items": "social.yarn.lextwt.comment"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "twts",
|
||||
"type": "social.yarn.lextwt.twts"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
|
64
lextwt.avro
64
lextwt.avro
@ -1,4 +1,4 @@
|
||||
{
|
||||
[{
|
||||
"type": "record",
|
||||
"name": "registry",
|
||||
"namespace": "social.yarn.lextwt",
|
||||
@ -175,28 +175,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name":"twters",
|
||||
"type":{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"name": "twter",
|
||||
"type":"record",
|
||||
"fields":[
|
||||
{
|
||||
"name": "nick",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "uri",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name": "preamble",
|
||||
"type": {
|
||||
@ -206,4 +184,44 @@
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "record",
|
||||
"name": "feed",
|
||||
"fields": [
|
||||
{
|
||||
"name": "twter",
|
||||
"type": {
|
||||
"type": "record",
|
||||
"name": "twter",
|
||||
"fields": [
|
||||
{
|
||||
"name": "nick",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "uri",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "preamble",
|
||||
"type": {
|
||||
"type":"array",
|
||||
"items": "social.yarn.lextwt.comment"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "twts",
|
||||
"type": {
|
||||
"type": "array",
|
||||
"items": "social.yarn.lextwt.twt"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -2,7 +2,12 @@ namespace lextwt;
|
||||
|
||||
table TwtRegistry {
|
||||
preamble:[Comment];
|
||||
twters:[Twter];
|
||||
twts:[Twt];
|
||||
}
|
||||
|
||||
table TwtFeed {
|
||||
twter:Twter;
|
||||
preamble:[Comment];
|
||||
twts:[Twt];
|
||||
}
|
||||
|
||||
|
@ -4,13 +4,20 @@ option go_package = "go.sour.is/lextwt-proto/pb";
|
||||
|
||||
service TwtRegistryService {
|
||||
rpc latestTwts (LatestTwts) returns (TwtRegistry);
|
||||
rpc users (Pager) returns (TwtRegistry);
|
||||
}
|
||||
|
||||
message LatestTwts {}
|
||||
message Pager {}
|
||||
|
||||
message TwtRegistry {
|
||||
repeated Comment preamble = 1;
|
||||
repeated Twter twters = 2;
|
||||
repeated Twt twts = 3;
|
||||
}
|
||||
|
||||
message TwtFeed {
|
||||
Twter twter = 2;
|
||||
repeated Comment preamble = 1;
|
||||
repeated Twt twts = 3;
|
||||
}
|
||||
|
||||
|
20
test.txt
Normal file
20
test.txt
Normal file
@ -0,0 +1,20 @@
|
||||
marado https://tilde.pt/~marado/twtxt.txt 2025-03-07T21:28:04Z (#114123268718308452) First #FridayReads of #MarchMysteryMadness #2025 with Stephen Chance's "Septimus and the Minster Ghost" - the second in the series - in a Faber Finds edition. 
|
||||
andros https://twtxt.andros.dev 2025-03-07T16:46:53+01:00 (#6c3lbxa) @<prologic https://twtxt.net/user/prologic/twtxt.txt> Thank you 😁
|
||||
movq https://www.uninformativ.de/twtxt.txt 2025-03-07T14:14:24+00:00 (#xsrxvgq) @<lyse https://lyse.isobeef.org/twtxt.txt> Oh, so *that’s* the problem! 😅
|
||||
movq https://www.uninformativ.de/twtxt.txt 2025-03-07T14:12:40+00:00 (#rudviwq) @<prologic https://twtxt.net/user/prologic/twtxt.txt> Brace for impact. 🫣 How stormy is it at the moment?
|
||||
andros https://twtxt.andros.dev 2025-03-07T14:47:32+01:00 You can find the #twtxt-el channel in Libera IRC to talk about the twtxt.el client, I will keep my connection open so you can ask me questions. Thank you!
|
||||
andros https://twtxt.andros.dev 2025-03-07T14:47:32+01:00 You can find the #twtxt-el channel in Libera IRC to talk about the twtxt.el client, I will keep my connection open so you can ask me questions. Thank you!
|
||||
andros https://twtxt.andros.dev 2025-03-06T15:07:10+01:00 Hacer software código opensource es desafiante y paulatinamente desgasta a su autor. Todo comienza con pasión y entusiasmo, por supuesto. Si logras repercusión, te enfrentas a una carrera de fondo que muchos terminan abandonando por las demandas constantes de usuarios que, a menudo, no valoran el trabajo ni contribuyen de manera significativa. Por mencionar un caso reciente: Hector Martin. Líder del proyecto Asahi Linux, quien dedicó años a adaptar Linux para los procesadores Apple Silicon, un logro técnico impresionante. Sin embargo, terminó renunciando debido a la presión de usuarios que exigían soporte y mejoras como si fueran clientes pagos.
La mayoría de los mantenedores no reciben ningún soporte económico. Solo unos pocos proyectos logran sostenibilidad financiera a través de patrocinios, mientras que la mayoría de los desarrolladores terminan con un segundo empleo no remunerado.
Sin un cambio en la forma en que se valora y apoya los proyectos Opensource, y no solo hablo de las grandes empresas multimillonarias. Sería una perdida para todos si acabaremos con un ecosistema de software archivado y abandonado.
Ahora te paso la pelota a ti, ¿cuando fue la última vez que apoyaste a un mantenedor de software opensource?
#opensource #software #sostenibilidad
|
||||
andros https://twtxt.andros.dev 2025-03-06T15:07:10+01:00 Hacer software código opensource es desafiante y paulatinamente desgasta a su autor. Todo comienza con pasión y entusiasmo, por supuesto. Si logras repercusión, te enfrentas a una carrera de fondo que muchos terminan abandonando por las demandas constantes de usuarios que, a menudo, no valoran el trabajo ni contribuyen de manera significativa. Por mencionar un caso reciente: Hector Martin. Líder del proyecto Asahi Linux, quien dedicó años a adaptar Linux para los procesadores Apple Silicon, un logro técnico impresionante. Sin embargo, terminó renunciando debido a la presión de usuarios que exigían soporte y mejoras como si fueran clientes pagos.
La mayoría de los mantenedores no reciben ningún soporte económico. Solo unos pocos proyectos logran sostenibilidad financiera a través de patrocinios, mientras que la mayoría de los desarrolladores terminan con un segundo empleo no remunerado.
Sin un cambio en la forma en que se valora y apoya los proyectos Opensource, y no solo hablo de las grandes empresas multimillonarias. Sería una perdida para todos si acabaremos con un ecosistema de software archivado y abandonado.
Ahora te paso la pelota a ti, ¿cuando fue la última vez que apoyaste a un mantenedor de software opensource?
#opensource #software #sostenibilidad
|
||||
andros https://twtxt.andros.dev 2025-03-06T15:07:10+01:00 Hacer software código opensource es desafiante y paulatinamente desgasta a su autor. Todo comienza con pasión y entusiasmo, por supuesto. Si logras repercusión, te enfrentas a una carrera de fondo que muchos terminan abandonando por las demandas constantes de usuarios que, a menudo, no valoran el trabajo ni contribuyen de manera significativa. Por mencionar un caso reciente: Hector Martin. Líder del proyecto Asahi Linux, quien dedicó años a adaptar Linux para los procesadores Apple Silicon, un logro técnico impresionante. Sin embargo, terminó renunciando debido a la presión de usuarios que exigían soporte y mejoras como si fueran clientes pagos.
La mayoría de los mantenedores no reciben ningún soporte económico. Solo unos pocos proyectos logran sostenibilidad financiera a través de patrocinios, mientras que la mayoría de los desarrolladores terminan con un segundo empleo no remunerado.
Sin un cambio en la forma en que se valora y apoya los proyectos Opensource, y no solo hablo de las grandes empresas multimillonarias. Sería una perdida para todos si acabaremos con un ecosistema de software archivado y abandonado.
Ahora te paso la pelota a ti, ¿cuando fue la última vez que apoyaste a un mantenedor de software opensource?
#opensource #software #sostenibilidad
|
||||
marado https://tilde.pt/~marado/twtxt.txt 2025-03-06T13:13:12Z (#114115660534785350) Palavras de Francisco Ferreira na mais recente newsletter da #ZERO :
"Há poucas semanas, esta nova Comissão (apesar da mesma Presidente Ursula von der Leyen), apresentou o chamado pacote legislativo “omnibus”. [...]
A proposta #Omnibus pretende alterar três pilares fundamentais do Pacto Ecológico Europeu - a Diretiva de Dever de Diligência das Empresas em Sustentabilidade (#CSDDD), a Diretiva de Comunicação de Informações de Sustentabilidade das Empresas (#CSRD) e o Regulamento de Taxonomia. Tal pode comprometer os objetivos climáticos e sociais da União Europeia. O argumento da simplificação regulatória, usado pela Comissão Europeia, vai, na prática, resultar no enfraquecimento de regras fundamentais que garantem transparência empresarial, redução de emissões e proteção dos direitos humanos nas cadeias de fornecimento globais. Além disso, essa revisão legislativa ameaça as empresas que já investiram na transição sustentável, favorecendo aquelas que ainda não se adaptaram às exigências ambientais e sociais.
Quando a Europa deveria ser um farol à escala mundial, num mundo ameaçado por enormes crises ambientais, estamos afinal a retroceder em áreas fundamentais para o futuro."
|
||||
marado https://tilde.pt/~marado/twtxt.txt 2025-03-06T13:05:47Z (#114115631334402672) Para a #musiquinta de #carnaval uma foto mas sem link, que não encontro estas músicas online.
"Gande Carnaval de Verão 1974" é um disco de Carnaval em que as letras foram alteradas para promover a #Tupperware :-P 
|
||||
marado https://tilde.pt/~marado/twtxt.txt 2025-03-05T23:05:35Z (#114112327569583065) Já se percebeu que o CDS quer voltar a ir a votos coligado com o PSD, em Maio, mas a grande questão política do momento agora é: será que o PPM continua a querer apoiar Montenegro?
#ptpol
|
||||
movq https://www.uninformativ.de/twtxt.txt 2025-03-05T19:00:22+00:00 (#myrrq6q) @<eapl.me https://eapl.me/tw.txt> Great, thanks for organizing this! 👍
|
||||
movq https://www.uninformativ.de/twtxt.txt 2025-03-05T18:59:09+00:00 (#xsrxvgq) @<lyse https://lyse.isobeef.org/twtxt.txt> No, it’s always in the shadow. But there’s not a lot of wind, maybe other things around it heat up … 🤔
|
||||
andros https://twtxt.andros.dev 2025-03-05T18:23:59+01:00 I have released new updates to the twtxt.el client.
- New feature: View and interact with threads.
- Optimisation of ordering for long feeds.
- Minor fixes.
In the next version you will be able to see all your mentions.
Enjoy!
#emacs #twtxt #twtxtel

|
||||
andros https://twtxt.andros.dev 2025-03-05T18:23:59+01:00 I have released new updates to the twtxt.el client.
- New feature: View and interact with threads.
- Optimisation of ordering for long feeds.
- Minor fixes.
In the next version you will be able to see all your mentions.
Enjoy!
#emacs #twtxt #twtxtel

|
||||
andros https://twtxt.andros.dev 2025-03-05T18:23:59+01:00 I have released new updates to the twtxt.el client.
- New feature: View and interact with threads.
- Optimisation of ordering for long feeds.
- Minor fixes.
In the next version you will be able to see all your mentions.
Enjoy!
#emacs #twtxt #twtxtel

|
||||
andros https://twtxt.andros.dev 2025-03-05T18:23:59+01:00 I have released new updates to the twtxt.el client.
- New feature: View and interact with threads.
- Optimisation of ordering for long feeds.
- Minor fixes.
In the next version you will be able to see all your mentions.
Enjoy!
#emacs #twtxt #twtxtel

|
||||
andros https://twtxt.andros.dev 2025-03-05T18:10:21+01:00 (#rudviwq) Oh my god! 😵
|
||||
andros https://twtxt.andros.dev 2025-03-05T18:10:21+01:00 (#rudviwq) Oh my god! 😵
|
@ -219,13 +219,36 @@ func (o *Twt) Marshal() ([]byte, error) {
|
||||
return avro.Marshal(o.Schema(), o)
|
||||
}
|
||||
|
||||
// Registry is a generated struct.
|
||||
type Registry struct {
|
||||
Twts []Twt `avro:"twts"`
|
||||
Preamble []Comment `avro:"preamble"`
|
||||
}
|
||||
|
||||
var schemaRegistry = avro.MustParse(`{"name":"social.yarn.lextwt.registry","type":"record","fields":[{"name":"twts","type":{"type":"array","items":{"name":"social.yarn.lextwt.twt","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"},{"name":"created","type":"long"},{"name":"createdZone","type":"string"},{"name":"createdOffset","type":"int"},{"name":"msg","type":{"type":"array","items":["null","string",{"name":"social.yarn.lextwt.linesep","type":"record","fields":[]},{"name":"social.yarn.lextwt.comment","type":"record","fields":[{"name":"comment","type":"string"},{"name":"key","type":"string"},{"name":"value","type":"string"}]},{"name":"social.yarn.lextwt.mention","type":"record","fields":[{"name":"name","type":"string"},{"name":"domain","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.bangmention","type":"record","fields":[{"name":"name","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.hashtag","type":"record","fields":[{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.subject","type":"record","fields":[{"name":"subject","type":"string"},{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.link","type":"record","fields":[{"name":"linkType","type":"int"},{"name":"text","type":"string"},{"name":"target","type":"string"},{"name":"title","type":"string"}]},{"name":"social.yarn.lextwt.code","type":"record","fields":[{"name":"code","type":"string"},{"name":"codetype","type":"int"}]}]}}]}}},{"name":"preamble","type":{"type":"array","items":"social.yarn.lextwt.comment"}}]}`)
|
||||
|
||||
// Schema returns the schema for Registry.
|
||||
func (o *Registry) Schema() avro.Schema {
|
||||
return schemaRegistry
|
||||
}
|
||||
|
||||
// Unmarshal decodes b into the receiver.
|
||||
func (o *Registry) Unmarshal(b []byte) error {
|
||||
return avro.Unmarshal(o.Schema(), b, o)
|
||||
}
|
||||
|
||||
// Marshal encodes the receiver.
|
||||
func (o *Registry) Marshal() ([]byte, error) {
|
||||
return avro.Marshal(o.Schema(), o)
|
||||
}
|
||||
|
||||
// Twter is a generated struct.
|
||||
type Twter struct {
|
||||
Nick string `avro:"nick"`
|
||||
URI string `avro:"uri"`
|
||||
}
|
||||
|
||||
var schemaTwter = avro.MustParse(`{"name":"social.yarn.lextwt.twter","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"}]}`)
|
||||
var schemaTwter = avro.MustParse(`{"name":"twter","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"}]}`)
|
||||
|
||||
// Schema returns the schema for Twter.
|
||||
func (o *Twter) Schema() avro.Schema {
|
||||
@ -242,26 +265,26 @@ func (o *Twter) Marshal() ([]byte, error) {
|
||||
return avro.Marshal(o.Schema(), o)
|
||||
}
|
||||
|
||||
// Registry is a generated struct.
|
||||
type Registry struct {
|
||||
Twts []Twt `avro:"twts"`
|
||||
Twters []Twter `avro:"twters"`
|
||||
// Feed is a generated struct.
|
||||
type Feed struct {
|
||||
Twter Twter `avro:"twter"`
|
||||
Preamble []Comment `avro:"preamble"`
|
||||
Twts []Twt `avro:"twts"`
|
||||
}
|
||||
|
||||
var schemaRegistry = avro.MustParse(`{"name":"social.yarn.lextwt.registry","type":"record","fields":[{"name":"twts","type":{"type":"array","items":{"name":"social.yarn.lextwt.twt","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"},{"name":"created","type":"long"},{"name":"createdZone","type":"string"},{"name":"createdOffset","type":"int"},{"name":"msg","type":{"type":"array","items":["null","string",{"name":"social.yarn.lextwt.linesep","type":"record","fields":[]},{"name":"social.yarn.lextwt.comment","type":"record","fields":[{"name":"comment","type":"string"},{"name":"key","type":"string"},{"name":"value","type":"string"}]},{"name":"social.yarn.lextwt.mention","type":"record","fields":[{"name":"name","type":"string"},{"name":"domain","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.bangmention","type":"record","fields":[{"name":"name","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.hashtag","type":"record","fields":[{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.subject","type":"record","fields":[{"name":"subject","type":"string"},{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.link","type":"record","fields":[{"name":"linkType","type":"int"},{"name":"text","type":"string"},{"name":"target","type":"string"},{"name":"title","type":"string"}]},{"name":"social.yarn.lextwt.code","type":"record","fields":[{"name":"code","type":"string"},{"name":"codetype","type":"int"}]}]}}]}}},{"name":"twters","type":{"type":"array","items":{"name":"social.yarn.lextwt.twter","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"}]}}},{"name":"preamble","type":{"type":"array","items":"social.yarn.lextwt.comment"}}]}`)
|
||||
var schemaFeed = avro.MustParse(`{"name":"feed","type":"record","fields":[{"name":"twter","type":{"name":"twter","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"}]}},{"name":"preamble","type":{"type":"array","items":"social.yarn.lextwt.comment"}},{"name":"twts","type":{"type":"array","items":"social.yarn.lextwt.twt"}}]}`)
|
||||
|
||||
// Schema returns the schema for Registry.
|
||||
func (o *Registry) Schema() avro.Schema {
|
||||
return schemaRegistry
|
||||
// Schema returns the schema for Feed.
|
||||
func (o *Feed) Schema() avro.Schema {
|
||||
return schemaFeed
|
||||
}
|
||||
|
||||
// Unmarshal decodes b into the receiver.
|
||||
func (o *Registry) Unmarshal(b []byte) error {
|
||||
func (o *Feed) Unmarshal(b []byte) error {
|
||||
return avro.Unmarshal(o.Schema(), b, o)
|
||||
}
|
||||
|
||||
// Marshal encodes the receiver.
|
||||
func (o *Registry) Marshal() ([]byte, error) {
|
||||
func (o *Feed) Marshal() ([]byte, error) {
|
||||
return avro.Marshal(o.Schema(), o)
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ const (
|
||||
keyTwt = "social.yarn.lextwt.twt"
|
||||
keyTwter = "social.yarn.lextwt.twter"
|
||||
keyRegistry = "social.yarn.lextwt.registry"
|
||||
keyFeed = "social.yarn.lextwt.feed"
|
||||
|
||||
)
|
||||
|
||||
func Register() {
|
||||
@ -37,6 +39,8 @@ func Register() {
|
||||
avro.Register(keyTwt, Twt{})
|
||||
avro.Register(keyTwter, Twter{})
|
||||
avro.Register(keyRegistry, Registry{})
|
||||
avro.Register(keyFeed, Feed{})
|
||||
|
||||
}
|
||||
|
||||
func Elem(o any) any {
|
||||
@ -79,13 +83,13 @@ func FromLextwt(twt *lextwt.Twt) Twt {
|
||||
}
|
||||
|
||||
ts := twt.Created()
|
||||
_, offset := ts.Zone()
|
||||
zone, offset := ts.Zone()
|
||||
l := Twt{
|
||||
Nick: twt.Twter().Nick,
|
||||
URI: twt.Twter().URI,
|
||||
Created: ts.UnixMilli(),
|
||||
CreatedOffset: offset,
|
||||
CreatedZone: "",
|
||||
CreatedZone: zone,
|
||||
}
|
||||
|
||||
for _, e := range twt.Elems() {
|
||||
@ -239,10 +243,6 @@ func EncodeRegistry(r TwtRegistry) ([]byte, error) {
|
||||
out.Preamble = append(out.Preamble, Comment{Comment: comment.Text()})
|
||||
}
|
||||
|
||||
for _, twter := range r.Twters() {
|
||||
out.Twters = append(out.Twters, Twter{Nick: twter.Nick, URI: twter.URI})
|
||||
}
|
||||
|
||||
for _, twt := range r.Twts() {
|
||||
out.Twts = append(out.Twts, FromTwt(twt))
|
||||
}
|
||||
@ -256,7 +256,7 @@ func DecodeRegistry(b []byte) (TwtRegistry, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
preamble := make(lextwt.Comments, len(out.Preamble))
|
||||
preamble := make(lextwt.Comments, 0, len(out.Preamble))
|
||||
for _, comment := range out.Preamble {
|
||||
if comment.Key != "" {
|
||||
preamble = append(preamble, lextwt.NewCommentValue(comment.Comment, comment.Key, comment.Value))
|
||||
@ -265,15 +265,67 @@ func DecodeRegistry(b []byte) (TwtRegistry, error) {
|
||||
}
|
||||
}
|
||||
|
||||
twters := make([]*types.Twter, len(out.Twters))
|
||||
for _, twter := range out.Twters {
|
||||
twters = append(twters, &types.Twter{Nick:twter.Nick, URI:twter.URI})
|
||||
}
|
||||
|
||||
twts := make(types.Twts, len(out.Twts))
|
||||
twts := make(types.Twts, 0, len(out.Twts))
|
||||
for _, twt := range out.Twts {
|
||||
twts = append(twts, twt.ToTwt())
|
||||
}
|
||||
|
||||
return lextwt.NewTwtRegistry(twters, preamble, twts), nil
|
||||
}
|
||||
return lextwt.NewTwtRegistry(preamble, twts), nil
|
||||
}
|
||||
|
||||
type TwtFeed interface {
|
||||
Twter() *types.Twter
|
||||
Preamble() lextwt.Comments
|
||||
Twts() types.Twts
|
||||
WriteTo(w io.Writer) (int64, error)
|
||||
}
|
||||
|
||||
|
||||
func EncodeFeed(r TwtFeed) ([]byte, error) {
|
||||
out := Feed{}
|
||||
|
||||
out.Twter.Nick = r.Twter().Nick
|
||||
out.Twter.URI = r.Twter().URI
|
||||
|
||||
for _, comment := range r.Preamble() {
|
||||
if comment.Key() != "" {
|
||||
out.Preamble = append(out.Preamble, Comment{Key: comment.Key(), Value: comment.Value()})
|
||||
continue
|
||||
}
|
||||
out.Preamble = append(out.Preamble, Comment{Comment: comment.Text()})
|
||||
}
|
||||
|
||||
for _, twt := range r.Twts() {
|
||||
out.Twts = append(out.Twts, FromTwt(twt))
|
||||
}
|
||||
|
||||
return out.Marshal()
|
||||
}
|
||||
|
||||
func DecodeFeed(b []byte) (TwtFeed, error) {
|
||||
var out Feed
|
||||
if err := out.Unmarshal(b); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
twter := types.Twter{
|
||||
Nick: out.Twter.Nick,
|
||||
URI: out.Twter.URI,
|
||||
}
|
||||
|
||||
preamble := make(lextwt.Comments, 0, len(out.Preamble))
|
||||
for _, comment := range out.Preamble {
|
||||
if comment.Key != "" {
|
||||
preamble = append(preamble, lextwt.NewCommentValue(comment.Comment, comment.Key, comment.Value))
|
||||
} else {
|
||||
preamble = append(preamble, lextwt.NewComment(comment.Comment))
|
||||
}
|
||||
}
|
||||
|
||||
twts := make(types.Twts, 0, len(out.Twts))
|
||||
for _, twt := range out.Twts {
|
||||
twts = append(twts, twt.ToTwt())
|
||||
}
|
||||
|
||||
return lextwt.NewTwtFile(twter, preamble, twts), nil
|
||||
}
|
||||
|
@ -18,6 +18,13 @@ type TwtRegistry interface {
|
||||
WriteTo(w io.Writer) (int64, error)
|
||||
}
|
||||
|
||||
type TwtFeed interface {
|
||||
Twter() *types.Twter
|
||||
Preamble() lextwt.Comments
|
||||
Twts() types.Twts
|
||||
WriteTo(w io.Writer) (int64, error)
|
||||
}
|
||||
|
||||
func EncodeTwt(twt types.Twt) []byte {
|
||||
lx, ok := twt.(*lextwt.Twt)
|
||||
if !ok {
|
||||
@ -41,7 +48,6 @@ func EncodeRegistry(lis TwtRegistry) []byte {
|
||||
|
||||
func createRegistry(b *flatbuffers.Builder, r TwtRegistry) flatbuffers.UOffsetT {
|
||||
preamble := make([]flatbuffers.UOffsetT, len(r.Preamble()))
|
||||
twters := make([]flatbuffers.UOffsetT, len(r.Twters()))
|
||||
twts := make([]flatbuffers.UOffsetT, len(r.Twts()))
|
||||
|
||||
for i, twt := range r.Twts() {
|
||||
@ -56,16 +62,6 @@ func createRegistry(b *flatbuffers.Builder, r TwtRegistry) flatbuffers.UOffsetT
|
||||
}
|
||||
oTwts := b.EndVector(len(twts))
|
||||
|
||||
for _, twter := range r.Twters() {
|
||||
twters = append(twters, createTwter(b, twter))
|
||||
}
|
||||
|
||||
fbs.TwtRegistryStartTwtersVector(b, len(twters))
|
||||
for _, offset := range twters {
|
||||
b.PrependUOffsetT(offset)
|
||||
}
|
||||
oTwters := b.EndVector(len(r.Twters()))
|
||||
|
||||
for _, comment := range r.Preamble() {
|
||||
preamble = append(preamble, createComment(b, comment))
|
||||
}
|
||||
@ -78,11 +74,52 @@ func createRegistry(b *flatbuffers.Builder, r TwtRegistry) flatbuffers.UOffsetT
|
||||
|
||||
fbs.TwtRegistryStart(b)
|
||||
fbs.TwtRegistryAddTwts(b, oTwts)
|
||||
fbs.TwtRegistryAddTwters(b, oTwters)
|
||||
fbs.TwtRegistryAddPreamble(b, oPreamble)
|
||||
return fbs.TwtRegistryEnd(b)
|
||||
}
|
||||
|
||||
func EncodeFeed(lis TwtFeed) []byte {
|
||||
b := flatbuffers.NewBuilder(len(lis.Twts()))
|
||||
b.Finish(createFeed(b, lis))
|
||||
return b.FinishedBytes()
|
||||
}
|
||||
|
||||
|
||||
func createFeed(b *flatbuffers.Builder, r TwtFeed) flatbuffers.UOffsetT {
|
||||
preamble := make([]flatbuffers.UOffsetT, len(r.Preamble()))
|
||||
twts := make([]flatbuffers.UOffsetT, len(r.Twts()))
|
||||
|
||||
twter := createTwter(b, r.Twter())
|
||||
|
||||
for i, twt := range r.Twts() {
|
||||
if twt, ok := twt.(*lextwt.Twt); ok {
|
||||
twts[i] = createTwt(b, twt)
|
||||
}
|
||||
}
|
||||
|
||||
fbs.TwtFeedStartTwtsVector(b, len(twts))
|
||||
for _, offset := range twts {
|
||||
b.PrependUOffsetT(offset)
|
||||
}
|
||||
oTwts := b.EndVector(len(twts))
|
||||
|
||||
for _, comment := range r.Preamble() {
|
||||
preamble = append(preamble, createComment(b, comment))
|
||||
}
|
||||
|
||||
fbs.TwtFeedStartPreambleVector(b, len(preamble))
|
||||
for _, offset := range preamble {
|
||||
b.PrependUOffsetT(offset)
|
||||
}
|
||||
oPreamble := b.EndVector(len(preamble))
|
||||
|
||||
fbs.TwtFeedStart(b)
|
||||
fbs.TwtFeedAddTwter(b, twter)
|
||||
fbs.TwtFeedAddTwts(b, oTwts)
|
||||
fbs.TwtFeedAddPreamble(b, oPreamble)
|
||||
return fbs.TwtFeedEnd(b)
|
||||
}
|
||||
|
||||
func createTwt(b *flatbuffers.Builder, twt *lextwt.Twt) flatbuffers.UOffsetT {
|
||||
twter := twt.Twter()
|
||||
|
||||
@ -335,14 +372,6 @@ func fromRegistry(r *fbs.TwtRegistry) TwtRegistry {
|
||||
twts[len(twts)-i-1] = fromTwt(twt)
|
||||
}
|
||||
|
||||
twters := make([]*types.Twter, r.TwtersLength())
|
||||
for i := 0; i < r.TwtersLength(); i++ {
|
||||
twter := &fbs.Twter{}
|
||||
if r.Twters(twter, i) {
|
||||
twters[len(twters)-i-1] = fromTwter(twter)
|
||||
}
|
||||
}
|
||||
|
||||
preamble := make(lextwt.Comments, r.PreambleLength())
|
||||
for i := 0; i < r.PreambleLength(); i++ {
|
||||
comment := &fbs.Comment{}
|
||||
@ -351,7 +380,7 @@ func fromRegistry(r *fbs.TwtRegistry) TwtRegistry {
|
||||
}
|
||||
}
|
||||
|
||||
return lextwt.NewTwtRegistry(twters, preamble, twts)
|
||||
return lextwt.NewTwtRegistry(preamble, twts)
|
||||
}
|
||||
|
||||
func fromDateTime(o *fbs.DateTime) *lextwt.DateTime {
|
||||
|
117
twt-fbs/lextwt/TwtFeed.go
Normal file
117
twt-fbs/lextwt/TwtFeed.go
Normal file
@ -0,0 +1,117 @@
|
||||
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
|
||||
|
||||
package lextwt
|
||||
|
||||
import (
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
)
|
||||
|
||||
type TwtFeed struct {
|
||||
_tab flatbuffers.Table
|
||||
}
|
||||
|
||||
func GetRootAsTwtFeed(buf []byte, offset flatbuffers.UOffsetT) *TwtFeed {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||
x := &TwtFeed{}
|
||||
x.Init(buf, n+offset)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishTwtFeedBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.Finish(offset)
|
||||
}
|
||||
|
||||
func GetSizePrefixedRootAsTwtFeed(buf []byte, offset flatbuffers.UOffsetT) *TwtFeed {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:])
|
||||
x := &TwtFeed{}
|
||||
x.Init(buf, n+offset+flatbuffers.SizeUint32)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishSizePrefixedTwtFeedBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.FinishSizePrefixed(offset)
|
||||
}
|
||||
|
||||
func (rcv *TwtFeed) Init(buf []byte, i flatbuffers.UOffsetT) {
|
||||
rcv._tab.Bytes = buf
|
||||
rcv._tab.Pos = i
|
||||
}
|
||||
|
||||
func (rcv *TwtFeed) Table() flatbuffers.Table {
|
||||
return rcv._tab
|
||||
}
|
||||
|
||||
func (rcv *TwtFeed) Twter(obj *Twter) *Twter {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
|
||||
if o != 0 {
|
||||
x := rcv._tab.Indirect(o + rcv._tab.Pos)
|
||||
if obj == nil {
|
||||
obj = new(Twter)
|
||||
}
|
||||
obj.Init(rcv._tab.Bytes, x)
|
||||
return obj
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *TwtFeed) Preamble(obj *Comment, j int) bool {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
x := rcv._tab.Vector(o)
|
||||
x += flatbuffers.UOffsetT(j) * 4
|
||||
x = rcv._tab.Indirect(x)
|
||||
obj.Init(rcv._tab.Bytes, x)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (rcv *TwtFeed) PreambleLength() int {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
return rcv._tab.VectorLen(o)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *TwtFeed) Twts(obj *Twt, j int) bool {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
|
||||
if o != 0 {
|
||||
x := rcv._tab.Vector(o)
|
||||
x += flatbuffers.UOffsetT(j) * 4
|
||||
x = rcv._tab.Indirect(x)
|
||||
obj.Init(rcv._tab.Bytes, x)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (rcv *TwtFeed) TwtsLength() int {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
|
||||
if o != 0 {
|
||||
return rcv._tab.VectorLen(o)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func TwtFeedStart(builder *flatbuffers.Builder) {
|
||||
builder.StartObject(3)
|
||||
}
|
||||
func TwtFeedAddTwter(builder *flatbuffers.Builder, twter flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(twter), 0)
|
||||
}
|
||||
func TwtFeedAddPreamble(builder *flatbuffers.Builder, preamble flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(preamble), 0)
|
||||
}
|
||||
func TwtFeedStartPreambleVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
}
|
||||
func TwtFeedAddTwts(builder *flatbuffers.Builder, twts flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(twts), 0)
|
||||
}
|
||||
func TwtFeedStartTwtsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
}
|
||||
func TwtFeedEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||
return builder.EndObject()
|
||||
}
|
@ -61,28 +61,8 @@ func (rcv *TwtRegistry) PreambleLength() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *TwtRegistry) Twters(obj *Twter, j int) bool {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
x := rcv._tab.Vector(o)
|
||||
x += flatbuffers.UOffsetT(j) * 4
|
||||
x = rcv._tab.Indirect(x)
|
||||
obj.Init(rcv._tab.Bytes, x)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (rcv *TwtRegistry) TwtersLength() int {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
return rcv._tab.VectorLen(o)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *TwtRegistry) Twts(obj *Twt, j int) bool {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
x := rcv._tab.Vector(o)
|
||||
x += flatbuffers.UOffsetT(j) * 4
|
||||
@ -94,7 +74,7 @@ func (rcv *TwtRegistry) Twts(obj *Twt, j int) bool {
|
||||
}
|
||||
|
||||
func (rcv *TwtRegistry) TwtsLength() int {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
return rcv._tab.VectorLen(o)
|
||||
}
|
||||
@ -102,7 +82,7 @@ func (rcv *TwtRegistry) TwtsLength() int {
|
||||
}
|
||||
|
||||
func TwtRegistryStart(builder *flatbuffers.Builder) {
|
||||
builder.StartObject(3)
|
||||
builder.StartObject(2)
|
||||
}
|
||||
func TwtRegistryAddPreamble(builder *flatbuffers.Builder, preamble flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(preamble), 0)
|
||||
@ -110,14 +90,8 @@ func TwtRegistryAddPreamble(builder *flatbuffers.Builder, preamble flatbuffers.U
|
||||
func TwtRegistryStartPreambleVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
}
|
||||
func TwtRegistryAddTwters(builder *flatbuffers.Builder, twters flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(twters), 0)
|
||||
}
|
||||
func TwtRegistryStartTwtersVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
}
|
||||
func TwtRegistryAddTwts(builder *flatbuffers.Builder, twts flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(twts), 0)
|
||||
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(twts), 0)
|
||||
}
|
||||
func TwtRegistryStartTwtsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
|
@ -34,12 +34,6 @@ func DecodeRegistry(b []byte) (twtRegistry, error) {
|
||||
}
|
||||
|
||||
func (r *TwtRegistry) FromLextwt(twt twtRegistry) error {
|
||||
twters := twt.Twters()
|
||||
r.Twters = apply(
|
||||
slices.All(twters),
|
||||
make([]*Twter, len(twters)),
|
||||
fromTwter)
|
||||
|
||||
preamble := twt.Preamble()
|
||||
r.Preamble = apply(
|
||||
slices.All(preamble),
|
||||
@ -56,9 +50,6 @@ func (r *TwtRegistry) FromLextwt(twt twtRegistry) error {
|
||||
}
|
||||
func (r *TwtRegistry) ToLextwt() twtRegistry {
|
||||
return lextwt.NewTwtRegistry(
|
||||
apply(slices.All(r.Twters), make([]*types.Twter, len(r.Twters)), func(c *Twter) *types.Twter {
|
||||
return c.ToLextwt()
|
||||
}),
|
||||
apply(slices.All(r.Preamble), make(lextwt.Comments, len(r.Preamble)), func(c *Comment) *lextwt.Comment {
|
||||
return c.ToLextwt()
|
||||
}),
|
||||
@ -68,6 +59,57 @@ func (r *TwtRegistry) ToLextwt() twtRegistry {
|
||||
)
|
||||
}
|
||||
|
||||
type twtFeed interface {
|
||||
Twter() *types.Twter
|
||||
Preamble() lextwt.Comments
|
||||
Twts() types.Twts
|
||||
WriteTo(w io.Writer) (int64, error)
|
||||
}
|
||||
|
||||
func EncodeFeed(r twtFeed) ([]byte, error) {
|
||||
o := &TwtFeed{}
|
||||
o.FromLextwt(r)
|
||||
|
||||
return proto.Marshal(o)
|
||||
}
|
||||
func DecodeFeed(b []byte) (twtFeed, error) {
|
||||
o := &TwtFeed{}
|
||||
err := proto.Unmarshal(b, o)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return o.ToLextwt(), nil
|
||||
}
|
||||
|
||||
func (r *TwtFeed) FromLextwt(twt twtFeed) error {
|
||||
r.Twter = fromTwter(twt.Twter())
|
||||
preamble := twt.Preamble()
|
||||
r.Preamble = apply(
|
||||
slices.All(preamble),
|
||||
make([]*Comment, len(preamble)),
|
||||
fromComment)
|
||||
|
||||
twts := twt.Twts()
|
||||
r.Twts = apply(
|
||||
slices.All(twts),
|
||||
make([]*Twt, len(twts)),
|
||||
fromTwt)
|
||||
|
||||
return nil
|
||||
}
|
||||
func (r *TwtFeed) ToLextwt() twtFeed {
|
||||
return lextwt.NewTwtFile(
|
||||
*r.Twter.ToLextwt(),
|
||||
apply(slices.All(r.Preamble), make(lextwt.Comments, len(r.Preamble)), func(c *Comment) *lextwt.Comment {
|
||||
return c.ToLextwt()
|
||||
}),
|
||||
apply(slices.All(r.Twts), make(types.Twts, len(r.Twts)), func(c *Twt) types.Twt {
|
||||
return c.ToLextwt()
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
func apply[U, V any](u iter.Seq2[int, U], v []V, fn func(U) V) []V {
|
||||
for i, u := range u {
|
||||
v[i] = fn(u)
|
||||
|
@ -67,7 +67,7 @@ func (x Code_Type) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use Code_Type.Descriptor instead.
|
||||
func (Code_Type) EnumDescriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{3, 0}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{5, 0}
|
||||
}
|
||||
|
||||
type Link_Type int32
|
||||
@ -122,7 +122,7 @@ func (x Link_Type) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use Link_Type.Descriptor instead.
|
||||
func (Link_Type) EnumDescriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{7, 0}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{9, 0}
|
||||
}
|
||||
|
||||
type LatestTwts struct {
|
||||
@ -161,10 +161,45 @@ func (*LatestTwts) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
type Pager struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *Pager) Reset() {
|
||||
*x = Pager{}
|
||||
mi := &file_lextwt_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *Pager) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Pager) ProtoMessage() {}
|
||||
|
||||
func (x *Pager) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_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 Pager.ProtoReflect.Descriptor instead.
|
||||
func (*Pager) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
type TwtRegistry struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Preamble []*Comment `protobuf:"bytes,1,rep,name=preamble,proto3" json:"preamble,omitempty"`
|
||||
Twters []*Twter `protobuf:"bytes,2,rep,name=twters,proto3" json:"twters,omitempty"`
|
||||
Twts []*Twt `protobuf:"bytes,3,rep,name=twts,proto3" json:"twts,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -172,7 +207,7 @@ type TwtRegistry struct {
|
||||
|
||||
func (x *TwtRegistry) Reset() {
|
||||
*x = TwtRegistry{}
|
||||
mi := &file_lextwt_proto_msgTypes[1]
|
||||
mi := &file_lextwt_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -184,7 +219,7 @@ func (x *TwtRegistry) String() string {
|
||||
func (*TwtRegistry) ProtoMessage() {}
|
||||
|
||||
func (x *TwtRegistry) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[1]
|
||||
mi := &file_lextwt_proto_msgTypes[2]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -197,7 +232,7 @@ func (x *TwtRegistry) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use TwtRegistry.ProtoReflect.Descriptor instead.
|
||||
func (*TwtRegistry) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{1}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *TwtRegistry) GetPreamble() []*Comment {
|
||||
@ -207,14 +242,67 @@ func (x *TwtRegistry) GetPreamble() []*Comment {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *TwtRegistry) GetTwters() []*Twter {
|
||||
func (x *TwtRegistry) GetTwts() []*Twt {
|
||||
if x != nil {
|
||||
return x.Twters
|
||||
return x.Twts
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *TwtRegistry) GetTwts() []*Twt {
|
||||
type TwtFeed struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Twter *Twter `protobuf:"bytes,2,opt,name=twter,proto3" json:"twter,omitempty"`
|
||||
Preamble []*Comment `protobuf:"bytes,1,rep,name=preamble,proto3" json:"preamble,omitempty"`
|
||||
Twts []*Twt `protobuf:"bytes,3,rep,name=twts,proto3" json:"twts,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *TwtFeed) Reset() {
|
||||
*x = TwtFeed{}
|
||||
mi := &file_lextwt_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *TwtFeed) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*TwtFeed) ProtoMessage() {}
|
||||
|
||||
func (x *TwtFeed) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_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 TwtFeed.ProtoReflect.Descriptor instead.
|
||||
func (*TwtFeed) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
func (x *TwtFeed) GetTwter() *Twter {
|
||||
if x != nil {
|
||||
return x.Twter
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *TwtFeed) GetPreamble() []*Comment {
|
||||
if x != nil {
|
||||
return x.Preamble
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *TwtFeed) GetTwts() []*Twt {
|
||||
if x != nil {
|
||||
return x.Twts
|
||||
}
|
||||
@ -231,7 +319,7 @@ type BangMention struct {
|
||||
|
||||
func (x *BangMention) Reset() {
|
||||
*x = BangMention{}
|
||||
mi := &file_lextwt_proto_msgTypes[2]
|
||||
mi := &file_lextwt_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -243,7 +331,7 @@ func (x *BangMention) String() string {
|
||||
func (*BangMention) ProtoMessage() {}
|
||||
|
||||
func (x *BangMention) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[2]
|
||||
mi := &file_lextwt_proto_msgTypes[4]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -256,7 +344,7 @@ func (x *BangMention) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use BangMention.ProtoReflect.Descriptor instead.
|
||||
func (*BangMention) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{2}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *BangMention) GetName() string {
|
||||
@ -283,7 +371,7 @@ type Code struct {
|
||||
|
||||
func (x *Code) Reset() {
|
||||
*x = Code{}
|
||||
mi := &file_lextwt_proto_msgTypes[3]
|
||||
mi := &file_lextwt_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -295,7 +383,7 @@ func (x *Code) String() string {
|
||||
func (*Code) ProtoMessage() {}
|
||||
|
||||
func (x *Code) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[3]
|
||||
mi := &file_lextwt_proto_msgTypes[5]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -308,7 +396,7 @@ func (x *Code) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Code.ProtoReflect.Descriptor instead.
|
||||
func (*Code) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{3}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
func (x *Code) GetType() Code_Type {
|
||||
@ -336,7 +424,7 @@ type Comment struct {
|
||||
|
||||
func (x *Comment) Reset() {
|
||||
*x = Comment{}
|
||||
mi := &file_lextwt_proto_msgTypes[4]
|
||||
mi := &file_lextwt_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -348,7 +436,7 @@ func (x *Comment) String() string {
|
||||
func (*Comment) ProtoMessage() {}
|
||||
|
||||
func (x *Comment) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[4]
|
||||
mi := &file_lextwt_proto_msgTypes[6]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -361,7 +449,7 @@ func (x *Comment) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Comment.ProtoReflect.Descriptor instead.
|
||||
func (*Comment) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{4}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{6}
|
||||
}
|
||||
|
||||
func (x *Comment) GetComment() string {
|
||||
@ -396,7 +484,7 @@ type DateTime struct {
|
||||
|
||||
func (x *DateTime) Reset() {
|
||||
*x = DateTime{}
|
||||
mi := &file_lextwt_proto_msgTypes[5]
|
||||
mi := &file_lextwt_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -408,7 +496,7 @@ func (x *DateTime) String() string {
|
||||
func (*DateTime) ProtoMessage() {}
|
||||
|
||||
func (x *DateTime) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[5]
|
||||
mi := &file_lextwt_proto_msgTypes[7]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -421,7 +509,7 @@ func (x *DateTime) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use DateTime.ProtoReflect.Descriptor instead.
|
||||
func (*DateTime) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{5}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{7}
|
||||
}
|
||||
|
||||
func (x *DateTime) GetTimestamp() int64 {
|
||||
@ -453,7 +541,7 @@ type LineSeparator struct {
|
||||
|
||||
func (x *LineSeparator) Reset() {
|
||||
*x = LineSeparator{}
|
||||
mi := &file_lextwt_proto_msgTypes[6]
|
||||
mi := &file_lextwt_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -465,7 +553,7 @@ func (x *LineSeparator) String() string {
|
||||
func (*LineSeparator) ProtoMessage() {}
|
||||
|
||||
func (x *LineSeparator) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[6]
|
||||
mi := &file_lextwt_proto_msgTypes[8]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -478,7 +566,7 @@ func (x *LineSeparator) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use LineSeparator.ProtoReflect.Descriptor instead.
|
||||
func (*LineSeparator) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{6}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{8}
|
||||
}
|
||||
|
||||
type Link struct {
|
||||
@ -493,7 +581,7 @@ type Link struct {
|
||||
|
||||
func (x *Link) Reset() {
|
||||
*x = Link{}
|
||||
mi := &file_lextwt_proto_msgTypes[7]
|
||||
mi := &file_lextwt_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -505,7 +593,7 @@ func (x *Link) String() string {
|
||||
func (*Link) ProtoMessage() {}
|
||||
|
||||
func (x *Link) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[7]
|
||||
mi := &file_lextwt_proto_msgTypes[9]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -518,7 +606,7 @@ func (x *Link) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Link.ProtoReflect.Descriptor instead.
|
||||
func (*Link) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{7}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{9}
|
||||
}
|
||||
|
||||
func (x *Link) GetType() Link_Type {
|
||||
@ -559,7 +647,7 @@ type Mention struct {
|
||||
|
||||
func (x *Mention) Reset() {
|
||||
*x = Mention{}
|
||||
mi := &file_lextwt_proto_msgTypes[8]
|
||||
mi := &file_lextwt_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -571,7 +659,7 @@ func (x *Mention) String() string {
|
||||
func (*Mention) ProtoMessage() {}
|
||||
|
||||
func (x *Mention) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[8]
|
||||
mi := &file_lextwt_proto_msgTypes[10]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -584,7 +672,7 @@ func (x *Mention) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Mention.ProtoReflect.Descriptor instead.
|
||||
func (*Mention) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{8}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{10}
|
||||
}
|
||||
|
||||
func (x *Mention) GetName() string {
|
||||
@ -611,7 +699,7 @@ type Subject struct {
|
||||
|
||||
func (x *Subject) Reset() {
|
||||
*x = Subject{}
|
||||
mi := &file_lextwt_proto_msgTypes[9]
|
||||
mi := &file_lextwt_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -623,7 +711,7 @@ func (x *Subject) String() string {
|
||||
func (*Subject) ProtoMessage() {}
|
||||
|
||||
func (x *Subject) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[9]
|
||||
mi := &file_lextwt_proto_msgTypes[11]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -636,7 +724,7 @@ func (x *Subject) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Subject.ProtoReflect.Descriptor instead.
|
||||
func (*Subject) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{9}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{11}
|
||||
}
|
||||
|
||||
func (x *Subject) GetSubject() string {
|
||||
@ -663,7 +751,7 @@ type Tag struct {
|
||||
|
||||
func (x *Tag) Reset() {
|
||||
*x = Tag{}
|
||||
mi := &file_lextwt_proto_msgTypes[10]
|
||||
mi := &file_lextwt_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -675,7 +763,7 @@ func (x *Tag) String() string {
|
||||
func (*Tag) ProtoMessage() {}
|
||||
|
||||
func (x *Tag) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[10]
|
||||
mi := &file_lextwt_proto_msgTypes[12]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -688,7 +776,7 @@ func (x *Tag) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Tag.ProtoReflect.Descriptor instead.
|
||||
func (*Tag) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{10}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{12}
|
||||
}
|
||||
|
||||
func (x *Tag) GetTag() string {
|
||||
@ -714,7 +802,7 @@ type Text struct {
|
||||
|
||||
func (x *Text) Reset() {
|
||||
*x = Text{}
|
||||
mi := &file_lextwt_proto_msgTypes[11]
|
||||
mi := &file_lextwt_proto_msgTypes[13]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -726,7 +814,7 @@ func (x *Text) String() string {
|
||||
func (*Text) ProtoMessage() {}
|
||||
|
||||
func (x *Text) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[11]
|
||||
mi := &file_lextwt_proto_msgTypes[13]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -739,7 +827,7 @@ func (x *Text) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Text.ProtoReflect.Descriptor instead.
|
||||
func (*Text) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{11}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{13}
|
||||
}
|
||||
|
||||
func (x *Text) GetText() string {
|
||||
@ -759,7 +847,7 @@ type Twter struct {
|
||||
|
||||
func (x *Twter) Reset() {
|
||||
*x = Twter{}
|
||||
mi := &file_lextwt_proto_msgTypes[12]
|
||||
mi := &file_lextwt_proto_msgTypes[14]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -771,7 +859,7 @@ func (x *Twter) String() string {
|
||||
func (*Twter) ProtoMessage() {}
|
||||
|
||||
func (x *Twter) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[12]
|
||||
mi := &file_lextwt_proto_msgTypes[14]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -784,7 +872,7 @@ func (x *Twter) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Twter.ProtoReflect.Descriptor instead.
|
||||
func (*Twter) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{12}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{14}
|
||||
}
|
||||
|
||||
func (x *Twter) GetNick() string {
|
||||
@ -821,7 +909,7 @@ type Elem struct {
|
||||
|
||||
func (x *Elem) Reset() {
|
||||
*x = Elem{}
|
||||
mi := &file_lextwt_proto_msgTypes[13]
|
||||
mi := &file_lextwt_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -833,7 +921,7 @@ func (x *Elem) String() string {
|
||||
func (*Elem) ProtoMessage() {}
|
||||
|
||||
func (x *Elem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[13]
|
||||
mi := &file_lextwt_proto_msgTypes[15]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -846,7 +934,7 @@ func (x *Elem) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Elem.ProtoReflect.Descriptor instead.
|
||||
func (*Elem) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{13}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{15}
|
||||
}
|
||||
|
||||
func (x *Elem) GetElem() isElem_Elem {
|
||||
@ -1006,7 +1094,7 @@ type Twt struct {
|
||||
|
||||
func (x *Twt) Reset() {
|
||||
*x = Twt{}
|
||||
mi := &file_lextwt_proto_msgTypes[14]
|
||||
mi := &file_lextwt_proto_msgTypes[16]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -1018,7 +1106,7 @@ func (x *Twt) String() string {
|
||||
func (*Twt) ProtoMessage() {}
|
||||
|
||||
func (x *Twt) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_lextwt_proto_msgTypes[14]
|
||||
mi := &file_lextwt_proto_msgTypes[16]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -1031,7 +1119,7 @@ func (x *Twt) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Twt.ProtoReflect.Descriptor instead.
|
||||
func (*Twt) Descriptor() ([]byte, []int) {
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{14}
|
||||
return file_lextwt_proto_rawDescGZIP(), []int{16}
|
||||
}
|
||||
|
||||
func (x *Twt) GetTwter() *Twter {
|
||||
@ -1059,99 +1147,106 @@ var File_lextwt_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_lextwt_proto_rawDesc = string([]byte{
|
||||
0x0a, 0x0c, 0x6c, 0x65, 0x78, 0x74, 0x77, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0c,
|
||||
0x0a, 0x0a, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x77, 0x74, 0x73, 0x22, 0x6d, 0x0a, 0x0b,
|
||||
0x54, 0x77, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x08, 0x70,
|
||||
0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e,
|
||||
0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c,
|
||||
0x65, 0x12, 0x1e, 0x0a, 0x06, 0x74, 0x77, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x06, 0x2e, 0x54, 0x77, 0x74, 0x65, 0x72, 0x52, 0x06, 0x74, 0x77, 0x74, 0x65, 0x72,
|
||||
0x73, 0x12, 0x18, 0x0a, 0x04, 0x74, 0x77, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x04, 0x2e, 0x54, 0x77, 0x74, 0x52, 0x04, 0x74, 0x77, 0x74, 0x73, 0x22, 0x39, 0x0a, 0x0b, 0x42,
|
||||
0x61, 0x6e, 0x67, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
|
||||
0x0a, 0x0a, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x77, 0x74, 0x73, 0x22, 0x07, 0x0a, 0x05,
|
||||
0x50, 0x61, 0x67, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0b, 0x54, 0x77, 0x74, 0x52, 0x65, 0x67, 0x69,
|
||||
0x73, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65,
|
||||
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
|
||||
0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x04, 0x74, 0x77,
|
||||
0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x54, 0x77, 0x74, 0x52, 0x04,
|
||||
0x74, 0x77, 0x74, 0x73, 0x22, 0x67, 0x0a, 0x07, 0x54, 0x77, 0x74, 0x46, 0x65, 0x65, 0x64, 0x12,
|
||||
0x1c, 0x0a, 0x05, 0x74, 0x77, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06,
|
||||
0x2e, 0x54, 0x77, 0x74, 0x65, 0x72, 0x52, 0x05, 0x74, 0x77, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a,
|
||||
0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x08, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d,
|
||||
0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x04, 0x74, 0x77, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x04, 0x2e, 0x54, 0x77, 0x74, 0x52, 0x04, 0x74, 0x77, 0x74, 0x73, 0x22, 0x39, 0x0a,
|
||||
0x0b, 0x42, 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x79, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
|
||||
0x12, 0x1e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a,
|
||||
0x2e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x63, 0x6f, 0x64, 0x65, 0x22, 0x3d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10,
|
||||
0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
|
||||
0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e,
|
||||
0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43,
|
||||
0x4b, 0x10, 0x02, 0x22, 0x4b, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18,
|
||||
0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
|
||||
0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x22, 0x54, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66,
|
||||
0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65,
|
||||
0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xc7, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b,
|
||||
0x12, 0x1e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a,
|
||||
0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
|
||||
0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61,
|
||||
0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69,
|
||||
0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
|
||||
0x22, 0x5f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x49, 0x4e, 0x4b,
|
||||
0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11,
|
||||
0x0a, 0x0d, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10,
|
||||
0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x10,
|
||||
0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10,
|
||||
0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x41, 0x4b, 0x45, 0x44, 0x10,
|
||||
0x04, 0x22, 0x35, 0x0a, 0x07, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x3b, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x6a,
|
||||
0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a,
|
||||
0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x54, 0x61, 0x67,
|
||||
0x52, 0x03, 0x74, 0x61, 0x67, 0x22, 0x2f, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03,
|
||||
0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||
0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x79, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e,
|
||||
0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x43,
|
||||
0x6f, 0x64, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12,
|
||||
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
|
||||
0x64, 0x65, 0x22, 0x3d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f,
|
||||
0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
|
||||
0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10,
|
||||
0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10,
|
||||
0x02, 0x22, 0x4b, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
|
||||
0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
|
||||
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x54,
|
||||
0x0a, 0x08, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
|
||||
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x7a, 0x6f, 0x6e, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x70, 0x61,
|
||||
0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xc7, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1e,
|
||||
0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x4c,
|
||||
0x69, 0x6e, 0x6b, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x6c, 0x74,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
|
||||
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x5f,
|
||||
0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x55,
|
||||
0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
|
||||
0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12,
|
||||
0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x10, 0x02, 0x12,
|
||||
0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10, 0x03, 0x12,
|
||||
0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x41, 0x4b, 0x45, 0x44, 0x10, 0x04, 0x22,
|
||||
0x35, 0x0a, 0x07, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||
0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x3b, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63,
|
||||
0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x03, 0x74,
|
||||
0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x03,
|
||||
0x74, 0x61, 0x67, 0x22, 0x2f, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61,
|
||||
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61,
|
||||
0x72, 0x67, 0x65, 0x74, 0x22, 0x1a, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04,
|
||||
0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74,
|
||||
0x22, 0x2d, 0x0a, 0x05, 0x54, 0x77, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63,
|
||||
0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x10, 0x0a,
|
||||
0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22,
|
||||
0xdb, 0x02, 0x0a, 0x04, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x30, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x67,
|
||||
0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
|
||||
0x42, 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x62,
|
||||
0x61, 0x6e, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x04, 0x63, 0x6f,
|
||||
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x48,
|
||||
0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a,
|
||||
0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x65, 0x70, 0x61,
|
||||
0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69,
|
||||
0x6e, 0x6b, 0x12, 0x24, 0x0a, 0x07, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
|
||||
0x07, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a,
|
||||
0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, 0x75, 0x62, 0x6a,
|
||||
0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18,
|
||||
0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x54, 0x61,
|
||||
0x67, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74,
|
||||
0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x48, 0x00, 0x52,
|
||||
0x04, 0x74, 0x65, 0x78, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x65, 0x6c, 0x65, 0x6d, 0x22, 0x61, 0x0a,
|
||||
0x03, 0x54, 0x77, 0x74, 0x12, 0x1c, 0x0a, 0x05, 0x74, 0x77, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x54, 0x77, 0x74, 0x65, 0x72, 0x52, 0x05, 0x74, 0x77, 0x74,
|
||||
0x65, 0x72, 0x12, 0x23, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x07,
|
||||
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x03, 0x6d, 0x73, 0x67,
|
||||
0x32, 0x3d, 0x0a, 0x12, 0x54, 0x77, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53,
|
||||
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74,
|
||||
0x54, 0x77, 0x74, 0x73, 0x12, 0x0b, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x77, 0x74,
|
||||
0x73, 0x1a, 0x0c, 0x2e, 0x54, 0x77, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x42,
|
||||
0x1c, 0x5a, 0x1a, 0x67, 0x6f, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x2e, 0x69, 0x73, 0x2f, 0x6c, 0x65,
|
||||
0x78, 0x74, 0x77, 0x74, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x1a, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12,
|
||||
0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65,
|
||||
0x78, 0x74, 0x22, 0x2d, 0x0a, 0x05, 0x54, 0x77, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e,
|
||||
0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12,
|
||||
0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
|
||||
0x69, 0x22, 0xdb, 0x02, 0x0a, 0x04, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x30, 0x0a, 0x0b, 0x62, 0x61,
|
||||
0x6e, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x0c, 0x2e, 0x42, 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
|
||||
0x0b, 0x62, 0x61, 0x6e, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x04,
|
||||
0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x43, 0x6f, 0x64,
|
||||
0x65, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
|
||||
0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x43, 0x6f, 0x6d,
|
||||
0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12,
|
||||
0x36, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x70,
|
||||
0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x65,
|
||||
0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x04,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x24, 0x0a, 0x07, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18,
|
||||
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x48,
|
||||
0x00, 0x52, 0x07, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x75,
|
||||
0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, 0x75,
|
||||
0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74,
|
||||
0x12, 0x18, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e,
|
||||
0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x04, 0x74, 0x65,
|
||||
0x78, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x48,
|
||||
0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x65, 0x6c, 0x65, 0x6d, 0x22,
|
||||
0x61, 0x0a, 0x03, 0x54, 0x77, 0x74, 0x12, 0x1c, 0x0a, 0x05, 0x74, 0x77, 0x74, 0x65, 0x72, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x54, 0x77, 0x74, 0x65, 0x72, 0x52, 0x05, 0x74,
|
||||
0x77, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
|
||||
0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x03, 0x6d, 0x73, 0x67,
|
||||
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x03, 0x6d,
|
||||
0x73, 0x67, 0x32, 0x5c, 0x0a, 0x12, 0x54, 0x77, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
|
||||
0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65,
|
||||
0x73, 0x74, 0x54, 0x77, 0x74, 0x73, 0x12, 0x0b, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54,
|
||||
0x77, 0x74, 0x73, 0x1a, 0x0c, 0x2e, 0x54, 0x77, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
|
||||
0x79, 0x12, 0x1d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x06, 0x2e, 0x50, 0x61, 0x67,
|
||||
0x65, 0x72, 0x1a, 0x0c, 0x2e, 0x54, 0x77, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
|
||||
0x42, 0x1c, 0x5a, 0x1a, 0x67, 0x6f, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x2e, 0x69, 0x73, 0x2f, 0x6c,
|
||||
0x65, 0x78, 0x74, 0x77, 0x74, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x62, 0x62, 0x06,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
})
|
||||
|
||||
var (
|
||||
@ -1167,52 +1262,58 @@ func file_lextwt_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_lextwt_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||
var file_lextwt_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
|
||||
var file_lextwt_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
|
||||
var file_lextwt_proto_goTypes = []any{
|
||||
(Code_Type)(0), // 0: Code.Type
|
||||
(Link_Type)(0), // 1: Link.Type
|
||||
(*LatestTwts)(nil), // 2: LatestTwts
|
||||
(*TwtRegistry)(nil), // 3: TwtRegistry
|
||||
(*BangMention)(nil), // 4: BangMention
|
||||
(*Code)(nil), // 5: Code
|
||||
(*Comment)(nil), // 6: Comment
|
||||
(*DateTime)(nil), // 7: DateTime
|
||||
(*LineSeparator)(nil), // 8: LineSeparator
|
||||
(*Link)(nil), // 9: Link
|
||||
(*Mention)(nil), // 10: Mention
|
||||
(*Subject)(nil), // 11: Subject
|
||||
(*Tag)(nil), // 12: Tag
|
||||
(*Text)(nil), // 13: Text
|
||||
(*Twter)(nil), // 14: Twter
|
||||
(*Elem)(nil), // 15: Elem
|
||||
(*Twt)(nil), // 16: Twt
|
||||
(*Pager)(nil), // 3: Pager
|
||||
(*TwtRegistry)(nil), // 4: TwtRegistry
|
||||
(*TwtFeed)(nil), // 5: TwtFeed
|
||||
(*BangMention)(nil), // 6: BangMention
|
||||
(*Code)(nil), // 7: Code
|
||||
(*Comment)(nil), // 8: Comment
|
||||
(*DateTime)(nil), // 9: DateTime
|
||||
(*LineSeparator)(nil), // 10: LineSeparator
|
||||
(*Link)(nil), // 11: Link
|
||||
(*Mention)(nil), // 12: Mention
|
||||
(*Subject)(nil), // 13: Subject
|
||||
(*Tag)(nil), // 14: Tag
|
||||
(*Text)(nil), // 15: Text
|
||||
(*Twter)(nil), // 16: Twter
|
||||
(*Elem)(nil), // 17: Elem
|
||||
(*Twt)(nil), // 18: Twt
|
||||
}
|
||||
var file_lextwt_proto_depIdxs = []int32{
|
||||
6, // 0: TwtRegistry.preamble:type_name -> Comment
|
||||
14, // 1: TwtRegistry.twters:type_name -> Twter
|
||||
16, // 2: TwtRegistry.twts:type_name -> Twt
|
||||
0, // 3: Code.type:type_name -> Code.Type
|
||||
1, // 4: Link.type:type_name -> Link.Type
|
||||
12, // 5: Subject.tag:type_name -> Tag
|
||||
4, // 6: Elem.bangmention:type_name -> BangMention
|
||||
5, // 7: Elem.code:type_name -> Code
|
||||
6, // 8: Elem.comment:type_name -> Comment
|
||||
8, // 9: Elem.lineseparator:type_name -> LineSeparator
|
||||
9, // 10: Elem.link:type_name -> Link
|
||||
10, // 11: Elem.mention:type_name -> Mention
|
||||
11, // 12: Elem.subject:type_name -> Subject
|
||||
12, // 13: Elem.tag:type_name -> Tag
|
||||
13, // 14: Elem.text:type_name -> Text
|
||||
14, // 15: Twt.twter:type_name -> Twter
|
||||
7, // 16: Twt.created:type_name -> DateTime
|
||||
15, // 17: Twt.msg:type_name -> Elem
|
||||
2, // 18: TwtRegistryService.latestTwts:input_type -> LatestTwts
|
||||
3, // 19: TwtRegistryService.latestTwts:output_type -> TwtRegistry
|
||||
19, // [19:20] is the sub-list for method output_type
|
||||
18, // [18:19] is the sub-list for method input_type
|
||||
18, // [18:18] is the sub-list for extension type_name
|
||||
18, // [18:18] is the sub-list for extension extendee
|
||||
0, // [0:18] is the sub-list for field type_name
|
||||
8, // 0: TwtRegistry.preamble:type_name -> Comment
|
||||
18, // 1: TwtRegistry.twts:type_name -> Twt
|
||||
16, // 2: TwtFeed.twter:type_name -> Twter
|
||||
8, // 3: TwtFeed.preamble:type_name -> Comment
|
||||
18, // 4: TwtFeed.twts:type_name -> Twt
|
||||
0, // 5: Code.type:type_name -> Code.Type
|
||||
1, // 6: Link.type:type_name -> Link.Type
|
||||
14, // 7: Subject.tag:type_name -> Tag
|
||||
6, // 8: Elem.bangmention:type_name -> BangMention
|
||||
7, // 9: Elem.code:type_name -> Code
|
||||
8, // 10: Elem.comment:type_name -> Comment
|
||||
10, // 11: Elem.lineseparator:type_name -> LineSeparator
|
||||
11, // 12: Elem.link:type_name -> Link
|
||||
12, // 13: Elem.mention:type_name -> Mention
|
||||
13, // 14: Elem.subject:type_name -> Subject
|
||||
14, // 15: Elem.tag:type_name -> Tag
|
||||
15, // 16: Elem.text:type_name -> Text
|
||||
16, // 17: Twt.twter:type_name -> Twter
|
||||
9, // 18: Twt.created:type_name -> DateTime
|
||||
17, // 19: Twt.msg:type_name -> Elem
|
||||
2, // 20: TwtRegistryService.latestTwts:input_type -> LatestTwts
|
||||
3, // 21: TwtRegistryService.users:input_type -> Pager
|
||||
4, // 22: TwtRegistryService.latestTwts:output_type -> TwtRegistry
|
||||
4, // 23: TwtRegistryService.users:output_type -> TwtRegistry
|
||||
22, // [22:24] is the sub-list for method output_type
|
||||
20, // [20:22] is the sub-list for method input_type
|
||||
20, // [20:20] is the sub-list for extension type_name
|
||||
20, // [20:20] is the sub-list for extension extendee
|
||||
0, // [0:20] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_lextwt_proto_init() }
|
||||
@ -1220,7 +1321,7 @@ func file_lextwt_proto_init() {
|
||||
if File_lextwt_proto != nil {
|
||||
return
|
||||
}
|
||||
file_lextwt_proto_msgTypes[13].OneofWrappers = []any{
|
||||
file_lextwt_proto_msgTypes[15].OneofWrappers = []any{
|
||||
(*Elem_Bangmention)(nil),
|
||||
(*Elem_Code)(nil),
|
||||
(*Elem_Comment)(nil),
|
||||
@ -1237,7 +1338,7 @@ func file_lextwt_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_lextwt_proto_rawDesc), len(file_lextwt_proto_rawDesc)),
|
||||
NumEnums: 2,
|
||||
NumMessages: 15,
|
||||
NumMessages: 17,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user