///|
/// Do not relabel task cancellation as a transport failure: callers need its identity to unwind.
fn transport_read_error(error : Error, prefix : String) -> Error {
if @async.is_being_cancelled() {
error
} else {
@types.ReadError(prefix + error.to_string())
}
}
///|
fn transport_write_error(error : Error, prefix : String) -> Error {
if @async.is_being_cancelled() {
error
} else {
@types.WriteError(prefix + error.to_string())
}
}