Skip to main content

MythicError

Enum MythicError 

Source
#[repr(u8)]
pub enum MythicError {
Show 31 variants Serialize = 1, Deserialize = 2, Base64 = 3, Utf8 = 4, InvalidPacket = 5, InvalidUuid = 6, UuidMismatch = 7, Crypto = 8, Timeout = 9, ConnectionFailed = 10, DnsFailed = 11, TlsFailed = 12, HttpStatus(u16), ServerError(u16), AuthFailed = 15, ServerRejected = 16, NotCheckedIn = 17, PayloadTooLarge = 18, KeyExchangeFailed = 19, RateLimited = 20, CommandNotFound = 21, InvalidTaskData = 22, TaskTimeout = 23, ResourceExhausted = 24, PermissionDenied = 25, ProcessFailed = 26, IoFailed = 27, Transport(String), Protocol(String), Task(String), Runtime(String),
}
Expand description

Unified error covering the full C2 agent lifecycle.

§Error codes

CodeVariantCategory
1SerializeCodec
2DeserializeCodec
3Base64Codec
4Utf8Codec
5InvalidPacketCodec
6InvalidUuidCodec
7UuidMismatchCodec
8CryptoCrypto
9TimeoutTransport
10ConnectionFailedTransport
11DnsFailedTransport
12TlsFailedTransport
13HttpStatus(u16)Transport
14ServerError(u16)Transport
15AuthFailedProtocol
16ServerRejectedProtocol
17NotCheckedInProtocol
18PayloadTooLargeProtocol
19KeyExchangeFailedProtocol
20RateLimitedProtocol
21CommandNotFoundTask
22InvalidTaskDataTask
23TaskTimeoutTask
24ResourceExhaustedRuntime
25PermissionDeniedRuntime
26ProcessFailedRuntime
27IoFailedRuntime
28TransportFallback
29ProtocolFallback
30TaskFallback
31RuntimeFallback

Variants§

§

Serialize = 1

§

Deserialize = 2

§

Base64 = 3

§

Utf8 = 4

§

InvalidPacket = 5

§

InvalidUuid = 6

§

UuidMismatch = 7

§

Crypto = 8

§

Timeout = 9

§

ConnectionFailed = 10

§

DnsFailed = 11

§

TlsFailed = 12

§

HttpStatus(u16)

§

ServerError(u16)

§

AuthFailed = 15

§

ServerRejected = 16

§

NotCheckedIn = 17

§

PayloadTooLarge = 18

§

KeyExchangeFailed = 19

§

RateLimited = 20

§

CommandNotFound = 21

§

InvalidTaskData = 22

§

TaskTimeout = 23

§

ResourceExhausted = 24

§

PermissionDenied = 25

§

ProcessFailed = 26

§

IoFailed = 27

§

Transport(String)

§

Protocol(String)

§

Task(String)

§

Runtime(String)

Implementations§

Source§

impl MythicError

Source

pub const fn code(&self) -> u8

Numeric error code.

Source

pub fn transport<E: Display>(e: E) -> Self

Build a Transport variant from any Display error.

Source

pub fn protocol<E: Display>(e: E) -> Self

Build a Protocol variant from any Display error.

Source

pub fn task<E: Display>(e: E) -> Self

Build a Task variant from any Display error.

Source

pub fn runtime<E: Display>(e: E) -> Self

Build a Runtime variant from any Display error.

Trait Implementations§

Source§

impl Clone for MythicError

Source§

fn clone(&self) -> MythicError

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MythicError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for MythicError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for MythicError

Source§

fn eq(&self, other: &MythicError) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for MythicError

Source§

impl StructuralPartialEq for MythicError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.