diff --git a/contrib/jrpcutil/errorcatcher.go b/contrib/jrpcutil/errorcatcher.go new file mode 100644 index 0000000000000000000000000000000000000000..979c282140ff7be7e816e27f9131f34286d6dc3b --- /dev/null +++ b/contrib/jrpcutil/errorcatcher.go @@ -0,0 +1,21 @@ +package jrpcutil + +import "gfx.cafe/open/jrpc/pkg/jsonrpc" + +type ErrorRecorder struct { + jsonrpc.ResponseWriter + + err error +} + +func (e *ErrorRecorder) Send(v any, err error) error { + newErr := e.ResponseWriter.Send(v, err) + if err != nil { + e.err = err + } + return newErr +} + +func (e *ErrorRecorder) Error() error { + return e.err +}