aboutsummaryrefslogtreecommitdiff
path: root/src/voice/error.rs
blob: a0bb11abc1e6c169277e8e3214839e3f943a33da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
use serde_json::{self, Value};
use std::process::Output;
use std;

/// An error returned from the voice module.
// Errors which are not visible to the end user are hidden.
#[derive(Debug)]
pub enum VoiceError {
    /// An indicator that an endpoint URL was invalid.
    EndpointUrl,
    #[doc(hidden)]
    ExpectedHandshake,
    #[doc(hidden)]
    FindingByte,
    #[doc(hidden)]
    HostnameResolve,
    #[doc(hidden)]
    KeyGen,
    /// An error occurred while checking if a path is stereo.
    Streams,
    #[doc(hidden)]
    VoiceModeInvalid,
    #[doc(hidden)]
    VoiceModeUnavailable,
    /// An error occurred while running `youtube-dl`.
    YouTubeDLRun(Output),
    /// An error occurred while processing the JSON output from `youtube-dl`.
    ///
    /// The JSON output is given.
    YouTubeDLProcessing(Value),
    /// The `url` field of the `youtube-dl` JSON output was not present.
    ///
    /// The JSON output is given.
    YouTubeDLUrl(Value),
}

/// An error returned from the dca method.
#[derive(Debug)]
pub enum DcaError {
    IoError(std::io::Error),
    InvalidHeader,
    InvalidMetadata(serde_json::Error),
    InvalidSize(i32),
}