Generics mit func-type?

master
Klaus Wendel 8 months ago
parent 34148e4aa7
commit 2584b0d09f

@ -4,5 +4,6 @@ go 1.14
require (
github.com/albenik/bcd v0.0.0-20170831201648-635201416bc7
nhooyr.io/websocket v1.8.6
github.com/klauspost/compress v1.15.11 // indirect
nhooyr.io/websocket v1.8.7
)

@ -19,6 +19,8 @@ github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/klauspost/compress v1.10.3 h1:OP96hzwJVBIHYU52pVTI6CczrxPvrGfgqF9N5eTO0Q8=
github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c=
github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -39,3 +41,5 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g=
nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=

@ -97,10 +97,10 @@ func (r *GosmContainer) WsContainerSend(method WsCommunicationMethod, conn *webs
return
}
func (r *GosmContainer) WsContainerReceive(method WsCommunicationMethod, conn *websocket.Conn, ctx context.Context, dosth func(interface{}) interface{}) (err error, receiveval, sendval interface{}, mtr websocket.MessageType) {
func (r *GosmContainer) WsContainerReceive[dosthtype (func(interface{}) interface{})| (func([]byte) []byte) ](method WsCommunicationMethod, conn *websocket.Conn, ctx context.Context, dosth dosthtype) (err error, receiveval, sendval interface{}, mtr websocket.MessageType) {
switch {
case method == ReceiveTextMethod || method == ReceiveBinaryMethod:
err, receiveval, sendval, mtr = WsReceive(ctx, conn, dosth.(func([]byte) []byte))
err, receiveval, sendval, mtr = WsReceive(ctx, conn, dosth)
case method == ReceiveJsonMethod:
err, receiveval, sendval = WsjsonReceive(ctx, conn, dosth)
mtr = websocket.MessageText
@ -110,6 +110,8 @@ func (r *GosmContainer) WsContainerReceive(method WsCommunicationMethod, conn *w
return
}
func WsjsonSend(ctx context.Context, conn *websocket.Conn, sendval interface{}) (err error, receiveval interface{}) {
err = nil

Loading…
Cancel
Save