tree 96ccbd21715edbf75e5b5aa8d83497428e65022c
parent b555ffa9b461f2e4b513e0d6d538c2f6475b9911
author Jes B. Klinke <jbk@chromium.org> 1644950200 -0800
committer Timothy Trippel <5633066+timothytrippel@users.noreply.github.com> 1645208502 -0800

[opentitantool] Introduce serializable TransportError

Introducing a serializable TransportError, and convenience
transport::{bail, ensure, Result}, to be used instead of anyhow::Result
on all methods of the Transport trait and its delegate traits.

This change allows propagation of error messages from implementation
of the Transport trait across the proposed proxy protocol to a client
calling a stub implementation of the same Transport trait on another
machine.

Many underlying libraries used by the various structs implementing the
Transport trait use other error enums and anyhow.  A convenience
method is provided to assist in converting such errors into
TransportError.

If a transport implementation previously made a call such as this:
serialport::available_ports()?;

It will now have to be replaced with:
use crate::transport::WrapInTransportError;
serialport::available_ports().wrap(UartError::EnumarationError)?;

This will cause e.g. an Err(io::Error(kind: PermissionDenied)) result
to be converted into Err(TransportError::UartError(EnumerationError,
"Permission denied"), in such a way that it collects the additional
context.  To the end user, the error message will look like this:

UART error: Enumerating: Permission denied

My hope is that in addition to allowing Transport errors to be sent
across RPC calls, the messages will also become more useful to end
users.

It can be debated how deep into the libraries and helper classes used
by Transport implementations methods should be converted to
exclusively use TransportError.

A consequence of this change is that errors must own the data they
carry, that is, any fields of the type `&'static str` will have to be
replaced with `String`, as the remote receiver may not have all the
same strings in its executable.

This marks the first step on issue: #10889

Smaller tangentially related changes also in this CL:
*) Merge hyperdebug/uart.rs and cw310/uart.rs into common/uart.rs,
   as both implementations used the same serialport library.
*) Clarified convention of Uart::read_timeout() such that timeout
   is always indicated by Ok(0), and serious errors with Err(_).

Signed-off-by: Jes B. Klinke <jbk@chromium.org>
Change-Id: I027189d44ee01e2bc83b8baac3f6d968e5586c34
