5#include "../Common/ResultErrorFormatter.h"
6#include "AsyncStreamsError.h"
12inline ResultErrorFormat formatAsyncStreamsError(
AsyncStreamsError error, Span<char> output)
14 ResultErrorFormatter formatter(output);
17 case AsyncStreamsError::InvalidBufferID: formatter.append(
"Buffer identifier is invalid");
break;
18 case AsyncStreamsError::InvalidParentBufferID: formatter.append(
"Parent buffer identifier is invalid");
break;
19 case AsyncStreamsError::BufferNotWritable: formatter.append(
"Buffer is not writable");
break;
20 case AsyncStreamsError::NoReusableBuffer: formatter.append(
"No reusable buffer can satisfy the request");
break;
21 case AsyncStreamsError::BufferPoolFull: formatter.append(
"Buffer pool is full");
break;
22 case AsyncStreamsError::InsufficientSliceStorage: formatter.append(
"Slice storage is too small");
break;
23 case AsyncStreamsError::InvalidSliceCount: formatter.append(
"Slice count must be greater than zero");
break;
24 case AsyncStreamsError::ChildViewOutOfBounds: formatter.append(
"Child view exceeds its parent buffer");
break;
25 case AsyncStreamsError::InvalidRootBufferType: formatter.append(
"Root buffer type is invalid");
break;
26 case AsyncStreamsError::ReadableNotReady: formatter.append(
"Readable stream is not ready to start");
break;
27 case AsyncStreamsError::ReadQueueMissing: formatter.append(
"Readable stream has no read queue");
break;
28 case AsyncStreamsError::EmptyReadBuffer: formatter.append(
"Readable stream cannot push an empty buffer");
break;
29 case AsyncStreamsError::ReadQueueFull: formatter.append(
"Readable stream queue is full");
break;
30 case AsyncStreamsError::InvalidReadableState:
31 formatter.append(
"Readable stream operation is invalid in this state");
33 case AsyncStreamsError::ReadReactivationMissing:
34 formatter.append(
"Readable stream did not reactivate after pushing data");
36 case AsyncStreamsError::ReadableDestroying: formatter.append(
"Readable stream is being destroyed");
break;
37 case AsyncStreamsError::ReadableEnded: formatter.append(
"Readable stream has ended");
break;
38 case AsyncStreamsError::ReadableNotInitialized: formatter.append(
"Readable stream is not initialized");
break;
39 case AsyncStreamsError::ReadableErrored: formatter.append(
"Readable stream is in an error state");
break;
40 case AsyncStreamsError::InvalidWritableState:
41 formatter.append(
"Writable stream operation is invalid in this state");
43 case AsyncStreamsError::WriteQueueMissing: formatter.append(
"Writable stream has no write queue");
break;
44 case AsyncStreamsError::WriteAfterEnd: formatter.append(
"Writable stream cannot accept writes after end");
break;
45 case AsyncStreamsError::WriteQueueFull: formatter.append(
"Writable stream queue is full");
break;
46 case AsyncStreamsError::WritableDestroying: formatter.append(
"Writable stream is being destroyed");
break;
47 case AsyncStreamsError::WritableEndAlreadyCalled: formatter.append(
"Writable stream end was already called");
break;
48 case AsyncStreamsError::PipelineSourceMissing: formatter.append(
"Pipeline source is missing");
break;
49 case AsyncStreamsError::PipelineSinkMissing: formatter.append(
"Pipeline has no sink");
break;
50 case AsyncStreamsError::PipelineBufferPoolMismatch:
51 formatter.append(
"Pipeline streams must share the same buffer pool");
53 case AsyncStreamsError::PipelineListenerStorageFull: formatter.append(
"Pipeline listener storage is full");
break;
54 case AsyncStreamsError::TransformInputChanged:
55 formatter.append(
"Paused transform received a different input buffer");
57 case AsyncStreamsError::TransformAlreadyFinalized: formatter.append(
"Transform has already finalized");
break;
58 case AsyncStreamsError::TransformAlreadyProcessing:
59 formatter.append(
"Transform is already processing input");
61 case AsyncStreamsError::TransformAlreadyFinalizing: formatter.append(
"Transform is already finalizing");
break;
62 case AsyncStreamsError::CompressionRuntimeUnavailable:
63 formatter.append(
"Compression runtime is unavailable");
65 case AsyncStreamsError::CompressionSymbolMissing:
66 formatter.append(
"Compression runtime is missing a required function");
68 case AsyncStreamsError::CompressionSpanInvalid: formatter.append(
"Compression buffer span is invalid");
break;
69 case AsyncStreamsError::CompressionNoProgress: formatter.append(
"Compression made no progress");
break;
70 case AsyncStreamsError::CompressionUnexpectedEnd: formatter.append(
"Compression stream ended unexpectedly");
break;
71 case AsyncStreamsError::CompressionDictionaryRequired:
72 formatter.append(
"Compression dictionary is required");
74 case AsyncStreamsError::CompressionIOFailure: formatter.append(
"Compression input or output failed");
break;
75 case AsyncStreamsError::CompressionStreamInvalid: formatter.append(
"Compression stream state is invalid");
break;
76 case AsyncStreamsError::CompressionDataInvalid: formatter.append(
"Compressed data is invalid");
break;
77 case AsyncStreamsError::CompressionMemoryUnavailable: formatter.append(
"Compression memory is unavailable");
break;
78 case AsyncStreamsError::CompressionVersionMismatch:
79 formatter.append(
"Compression runtime version is incompatible");
81 case AsyncStreamsError::CompressionFailed: formatter.append(
"Compression failed");
break;
82 case AsyncStreamsError::CompressionAlreadyInitialized:
83 formatter.append(
"Compression stream is already initialized");
85 case AsyncStreamsError::CompressionOutputBufferEmpty: formatter.append(
"Compression output buffer is empty");
break;
86 case AsyncStreamsError::CompressionNotInitialized: formatter.append(
"Compression stream is not initialized");
break;
87 case AsyncStreamsError::AsyncEventLoopMissing: formatter.append(
"Async stream has no event loop");
break;
88 case AsyncStreamsError::AsyncRequestDestroying: formatter.append(
"Async request is being destroyed");
break;
89 case AsyncStreamsError::AsyncDescriptorMissing: formatter.append(
"Async stream descriptor is missing");
break;
90 case AsyncStreamsError::CipherOutputBufferTooSmall:
91 formatter.append(
"Cipher output buffer is smaller than one block");
93 case AsyncStreamsError::CipherInvalidOutputSize:
94 formatter.append(
"Cipher reported an output size beyond its buffer");
96 default:
return ResultErrorFormatter::failure(ResultErrorFormatStatus::UnknownError, output);
98 return formatter.finish();
101inline ResultErrorFormat formatAsyncStreamsError(Result result, Span<char> output)
104 return ResultErrorFormatter::failure(ResultErrorFormatStatus::NotAnError, output);
105 if (result.category() != AsyncStreamsResultCategory)
106 return ResultErrorFormatter::failure(ResultErrorFormatStatus::ForeignCategory, output);
107 return formatAsyncStreamsError(
static_cast<AsyncStreamsError>(result.errorValue()), output);
AsyncStreamsError
Stable portable failures owned by AsyncStreams.
Definition AsyncStreamsError.h:15