1use crate::{Buffer, BufferError};
2
3#[must_use]
4#[derive(Debug, PartialEq, Eq)]
5pub enum BufferResult {
6 Ok(Buffer),
7 Err(BufferError),
8}
9
10impl Clone for BufferResult {
11 fn clone(&self) -> Self {
12 match self {
13 Self::Ok(buffer) => buffer.clone().into(),
14 Self::Err(err) => Self::Err(err.clone()),
15 }
16 }
17}
18
19impl Default for BufferResult {
20 fn default() -> Self {
21 Self::Ok(Buffer::default())
22 }
23}
24
25impl From<Result<Buffer, BufferError>> for BufferResult {
26 fn from(result: Result<Buffer, BufferError>) -> Self {
27 match result {
28 Ok(buffer) => Self::Ok(buffer),
29 Err(err) => Self::Err(err),
30 }
31 }
32}
33
34impl From<Buffer> for BufferResult {
35 fn from(buffer: Buffer) -> Self {
36 Self::Ok(buffer)
37 }
38}
39
40impl From<BufferError> for BufferResult {
41 fn from(err: BufferError) -> Self {
42 Self::Err(err)
43 }
44}
45
46impl From<BufferResult> for Result<Buffer, BufferError> {
47 fn from(result: BufferResult) -> Self {
48 match result {
49 BufferResult::Ok(buffer) => Ok(buffer),
50 BufferResult::Err(err) => Err(err),
51 }
52 }
53}
54
55impl BufferResult {
56 #[allow(clippy::missing_errors_doc)]
57 pub fn into_result(self) -> Result<Buffer, BufferError> {
59 self.into()
60 }
61}