diff --git a/helper.go b/helper.go index 04fa2b7779b17fbe3ae7ed541e1dd9b66fa2deb3..56bdb8bcf28ac4456889d7b074ae0a091f8f5312 100644 --- a/helper.go +++ b/helper.go @@ -2,11 +2,20 @@ package jrpc import "context" -func Do[T any](ctx context.Context, c Conn, method string, args any) (T, error) { +func Do[T any](ctx context.Context, c Conn, method string, args any) (*T, error) { var t T - err := c.Do(ctx, t, method, args) + err := c.Do(ctx, &t, method, args) if err != nil { - return t, err + return nil, err } - return t, nil + return &t, nil +} + +func Call[T any](ctx context.Context, c Conn, method string, args ...any) (*T, error) { + var t T + err := c.Call(ctx, &t, method, args) + if err != nil { + return nil, err + } + return &t, nil }