On Tue, Apr 19, 2022 at 11:12:28AM -0700, Andrea Bolognani wrote: > Dealing with errors and commands that don't have a return value might > require us to have generic CommandResult wrapper after all, but we > should really try as hard as we can to stick to type safe interfaces.
On second thought, this wouldn't actually need to be generic: we could have something like type TraceEventGetStateResult struct { Result TraceEventInfo `json:"return"` Error *Error `json:"error"` } and the caller would check that res.Error is nil before accessing res.Result. Commands for which a return value is not expected would just have the Error part in their corresponding Result struct, and those that can either return an object or nothing (are there actually any like that?) could have a pointer as the Result member. -- Andrea Bolognani / Red Hat / Virtualization