[][src]Trait wayk_proto::serialization::Decode

pub trait Decode<'dec> where
    Self: Sized
{ fn decode_from(cursor: &mut Cursor<&'dec [u8]>) -> Result<Self, ProtoError>; fn decode(bytes: &'dec [u8]) -> Result<Self, ProtoError> { ... } }

Common interface for decoding

'dec lifetime should not appear in the type to which the Encode impl applies.

Types that borrows should implement the trait like this:

use wayk_proto::serialization::Decode;
use wayk_proto::error::ProtoError;
use std::io::Cursor;

// my type that borrows
struct MyType<'a> {
    data: &'a [u8],
}

impl<'dec: 'a, 'a> Decode<'dec> for MyType<'a> {
    fn decode_from(cursor: &mut Cursor<&'dec [u8]>) -> Result<Self, ProtoError> {
        unimplemented!()
    }
}

That is, do not do this:

use wayk_proto::serialization::Decode;
use wayk_proto::error::ProtoError;
use std::io::Cursor;

struct MyType<'a> {
    data: &'a [u8],
}

impl<'dec> Decode<'dec> for MyType<'dec> {
    fn decode_from(cursor: &mut Cursor<&'dec [u8]>) -> Result<Self, ProtoError> {
        unimplemented!()
    }
}

Sooner or later it will explodes in your face.

Required methods

fn decode_from(cursor: &mut Cursor<&'dec [u8]>) -> Result<Self, ProtoError>

Loading content...

Provided methods

fn decode(bytes: &'dec [u8]) -> Result<Self, ProtoError>

Loading content...

Implementations on Foreign Types

impl<'_> Decode<'_> for u8[src]

impl<'_> Decode<'_> for u16[src]

impl<'_> Decode<'_> for u32[src]

impl<'_> Decode<'_> for u64[src]

impl<'_> Decode<'_> for u128[src]

impl<'_> Decode<'_> for i8[src]

impl<'_> Decode<'_> for i16[src]

impl<'_> Decode<'_> for i32[src]

impl<'_> Decode<'_> for i64[src]

impl<'_> Decode<'_> for i128[src]

impl<'_> Decode<'_> for [u32; 4][src]

impl<'dec: 'a, 'a, T: 'a> Decode<'dec> for Box<T> where
    T: Decode<'dec>, 
[src]

Loading content...

Implementors

impl<'_> Decode<'_> for PFPMessageFlags[src]

impl<'_> Decode<'_> for PFPMessageType[src]

impl<'_> Decode<'_> for NowHeader[src]

impl<'_> Decode<'_> for AssociateMessageType[src]

impl<'_> Decode<'_> for AuthType[src]

impl<'_> Decode<'_> for AuthenticateMessageType[src]

impl<'_> Decode<'_> for SRPMessageType[src]

impl<'_> Decode<'_> for AccessControlCode[src]

impl<'_> Decode<'_> for Codec[src]

impl<'_> Decode<'_> for InputActionCode[src]

impl<'_> Decode<'_> for QualityMode[src]

impl<'_> Decode<'_> for ChannelMessageType[src]

impl<'_> Decode<'_> for MessageType[src]

impl<'_> Decode<'_> for EventMouseFlags[src]

impl<'_> Decode<'_> for InputMessageType[src]

impl<'_> Decode<'_> for ToggleEventKeys[src]

impl<'_> Decode<'_> for MouseCursorType[src]

impl<'_> Decode<'_> for MouseMessageType[src]

impl<'_> Decode<'_> for MouseMode[src]

impl<'_> Decode<'_> for MouseState[src]

impl<'_> Decode<'_> for NowSurfaceMsg[src]

impl<'_> Decode<'_> for SurfaceMessageType[src]

impl<'_> Decode<'_> for SurfaceOrientation[src]

impl<'_> Decode<'_> for OsArch[src]

impl<'_> Decode<'_> for OsType[src]

impl<'_> Decode<'_> for SystemInfoType[src]

impl<'_> Decode<'_> for SystemMessageType[src]

impl<'_> Decode<'_> for UpdateMessageType[src]

impl<'_> Decode<'_> for UpdateRegionFlag[src]

impl<'_> Decode<'_> for AssociateStatusCode[src]

impl<'_> Decode<'_> for AuthStatusCode[src]

impl<'_> Decode<'_> for CapabilitiesStatusCode[src]

impl<'_> Decode<'_> for ChannelStatusCode[src]

impl<'_> Decode<'_> for ClipboardStatusCode[src]

impl<'_> Decode<'_> for ConnectStatusCode[src]

impl<'_> Decode<'_> for DisconnectStatusCode[src]

impl<'_> Decode<'_> for ExecStatusCode[src]

impl<'_> Decode<'_> for FileTransferStatusCode[src]

impl<'_> Decode<'_> for HandshakeStatusCode[src]

impl<'_> Decode<'_> for NegotiateStatusCode[src]

impl<'_> Decode<'_> for SecurityStatusCode[src]

impl<'_> Decode<'_> for SeverityLevel[src]

impl<'_> Decode<'_> for StatusType[src]

impl<'_> Decode<'_> for ChatMessageType[src]

impl<'_> Decode<'_> for ChatPresenceStatus[src]

impl<'_> Decode<'_> for ClipboardControlState[src]

impl<'_> Decode<'_> for ClipboardMessageType[src]

impl<'_> Decode<'_> for ExecMessageType[src]

impl<'_> Decode<'_> for FileTransferMessageType[src]

impl<'_> Decode<'_> for NowLongHeader[src]

impl<'_> Decode<'_> for NowShortHeader[src]

impl<'_> Decode<'_> for NowSystemOsInfo[src]

impl<'_, CodeType> Decode<'_> for NowStatus<CodeType> where
    CodeType: FromPrimitive
[src]

impl<'dec> Decode<'dec> for NowAuthPFP[src]

impl<'dec> Decode<'dec> for NowAssociateMsg[src]

impl<'dec> Decode<'dec> for InputEvent[src]

impl<'dec> Decode<'dec> for NowSystemInfo[src]

impl<'dec> Decode<'dec> for NowSystemMsg[src]

impl<'dec> Decode<'dec> for NowChatMsg[src]

impl<'dec> Decode<'dec> for NowAuthPFPChallenge[src]

impl<'dec> Decode<'dec> for NowAuthPFPNegotiate[src]

impl<'dec> Decode<'dec> for NowAuthPFPResponse[src]

impl<'dec> Decode<'dec> for EdgeRect[src]

impl<'dec> Decode<'dec> for SizeRect[src]

impl<'dec> Decode<'dec> for NowActivateMsg[src]

impl<'dec> Decode<'dec> for AssociateInfoFlags[src]

impl<'dec> Decode<'dec> for AssociateRequestFlags[src]

impl<'dec> Decode<'dec> for AssociateResponseFlags[src]

impl<'dec> Decode<'dec> for NowAssociateInfoMsg[src]

impl<'dec> Decode<'dec> for NowAssociateRequestMsg[src]

impl<'dec> Decode<'dec> for NowAssociateResponseMsg[src]

impl<'dec> Decode<'dec> for AuthentificationFailureFlags[src]

impl<'dec> Decode<'dec> for NowAuthenticateFailureMsg[src]

impl<'dec> Decode<'dec> for NowAuthenticateSuccessMsg[src]

impl<'dec> Decode<'dec> for NowAuthenticateTokenMsgOwned[src]

impl<'dec> Decode<'dec> for AccessCapset[src]

impl<'dec> Decode<'dec> for AccessControlDef[src]

impl<'dec> Decode<'dec> for AccessFlags[src]

impl<'dec> Decode<'dec> for InputActionFlags[src]

impl<'dec> Decode<'dec> for InputCapset[src]

impl<'dec> Decode<'dec> for LicenseCapset[src]

impl<'dec> Decode<'dec> for LicenseCapsetFlags[src]

impl<'dec> Decode<'dec> for MouseCapset[src]

impl<'dec> Decode<'dec> for MouseCapsetFlags[src]

impl<'dec> Decode<'dec> for NowCodecDef[src]

impl<'dec> Decode<'dec> for NowInputActionDef[src]

impl<'dec> Decode<'dec> for SurfaceCapset[src]

impl<'dec> Decode<'dec> for SurfaceCapsetFlags[src]

impl<'dec> Decode<'dec> for SystemCapsetFlags[src]

impl<'dec> Decode<'dec> for TransportCapset[src]

impl<'dec> Decode<'dec> for UpdateCapset[src]

impl<'dec> Decode<'dec> for ChannelDefFlags[src]

impl<'dec> Decode<'dec> for NowChannelDef[src]

impl<'dec> Decode<'dec> for NowChannelMsg[src]

impl<'dec> Decode<'dec> for HanshakeFlags[src]

impl<'dec> Decode<'dec> for NowHandshakeMsg[src]

impl<'dec> Decode<'dec> for NegotiateFlags[src]

impl<'dec> Decode<'dec> for NowNegotiateMsg[src]

impl<'dec> Decode<'dec> for NowTerminateMsg[src]

impl<'dec> Decode<'dec> for NowInputEventAction[src]

impl<'dec> Decode<'dec> for NowInputEventKeyboard[src]

impl<'dec> Decode<'dec> for NowInputEventMouse[src]

impl<'dec> Decode<'dec> for NowInputEventScroll[src]

impl<'dec> Decode<'dec> for NowInputEventToggle[src]

impl<'dec> Decode<'dec> for NowInputMsg[src]

impl<'dec> Decode<'dec> for MouseCursorFlags[src]

impl<'dec> Decode<'dec> for MousePositionFlags[src]

impl<'dec> Decode<'dec> for NowSurfaceDef[src]

impl<'dec> Decode<'dec> for NowSurfaceListReqMsg[src]

impl<'dec> Decode<'dec> for NowSurfaceListRspMsg[src]

impl<'dec> Decode<'dec> for NowSurfaceMap[src]

impl<'dec> Decode<'dec> for NowSurfaceMapReqMsg[src]

impl<'dec> Decode<'dec> for NowSurfaceMapRspMsg[src]

impl<'dec> Decode<'dec> for NowSurfaceSelectReqMsg[src]

impl<'dec> Decode<'dec> for NowSurfaceSelectRspMsg[src]

impl<'dec> Decode<'dec> for SurfacePropertiesFlags[src]

impl<'dec> Decode<'dec> for SurfaceResponseFlags[src]

impl<'dec> Decode<'dec> for NowSystemInfoReqMsg[src]

impl<'dec> Decode<'dec> for NowSystemInfoRspMsg[src]

impl<'dec> Decode<'dec> for NowSystemShutdownMsg[src]

impl<'dec> Decode<'dec> for OsInfoExtraAndroid[src]

impl<'dec> Decode<'dec> for OsInfoExtraIOS[src]

impl<'dec> Decode<'dec> for OsInfoExtraLinux[src]

impl<'dec> Decode<'dec> for OsInfoExtraMac[src]

impl<'dec> Decode<'dec> for OsInfoExtraWindows[src]

impl<'dec> Decode<'dec> for ShutdownFlags[src]

impl<'dec> Decode<'dec> for SystemOsInfoFlags[src]

impl<'dec> Decode<'dec> for WindowsProductFlags[src]

impl<'dec> Decode<'dec> for NowUpdateRefreshMsg[src]

impl<'dec> Decode<'dec> for NowUpdateRegion[src]

impl<'dec> Decode<'dec> for NowUpdateSuppressMsg[src]

impl<'dec> Decode<'dec> for UpdateGraphicsFlags[src]

impl<'dec> Decode<'dec> for ChatCapabilitiesFlags[src]

impl<'dec> Decode<'dec> for ChatTextFlags[src]

impl<'dec> Decode<'dec> for ChatTypingFlags[src]

impl<'dec> Decode<'dec> for NowChatNameMsg[src]

impl<'dec> Decode<'dec> for NowChatPokeMsg[src]

impl<'dec> Decode<'dec> for NowChatReadMsg[src]

impl<'dec> Decode<'dec> for NowChatStatusMsg[src]

impl<'dec> Decode<'dec> for NowChatSyncMsg[src]

impl<'dec> Decode<'dec> for NowChatTextMsg[src]

impl<'dec> Decode<'dec> for NowChatTypingMsg[src]

impl<'dec> Decode<'dec> for ClipboardFormatDef[src]

impl<'dec> Decode<'dec> for ClipboardResponseFlags[src]

impl<'dec> Decode<'dec> for NowClipboardCapabilitiesReqMsg[src]

impl<'dec> Decode<'dec> for NowClipboardCapabilitiesRspMsg[src]

impl<'dec> Decode<'dec> for NowClipboardControlReqMsg[src]

impl<'dec> Decode<'dec> for NowClipboardControlRspMsg[src]

impl<'dec> Decode<'dec> for NowClipboardFormatDataReqMsg[src]

impl<'dec> Decode<'dec> for NowClipboardFormatDataRspMsgOwned[src]

impl<'dec> Decode<'dec> for NowClipboardFormatListReqMsg[src]

impl<'dec> Decode<'dec> for NowClipboardFormatListRspMsg[src]

impl<'dec> Decode<'dec> for NowClipboardResumeReqMsg[src]

impl<'dec> Decode<'dec> for NowClipboardResumeRspMsg[src]

impl<'dec> Decode<'dec> for NowClipboardSuspendReqMsg[src]

impl<'dec> Decode<'dec> for NowClipboardSuspendRspMsg[src]

impl<'dec, Item> Decode<'dec> for Vec16<Item> where
    Item: Decode<'dec>, 
[src]

impl<'dec, Item> Decode<'dec> for Vec32<Item> where
    Item: Decode<'dec>, 
[src]

impl<'dec, Item> Decode<'dec> for Vec64<Item> where
    Item: Decode<'dec>, 
[src]

impl<'dec, Item> Decode<'dec> for Vec8<Item> where
    Item: Decode<'dec>, 
[src]

impl<'dec, Size, SizeType> Decode<'dec> for NowString<Size, SizeType> where
    Size: NowStringSize,
    SizeType: Decode<'dec> + ToPrimitive
[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowAuthenticateMsg<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowCapset<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for ChannelName[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowUpdateMsg<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowClipboardMsg<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for Bytes16<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for Bytes32<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for Bytes64<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for Bytes8<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowAuthenticateTokenMsg<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowCapabilitiesMsg<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for SystemCapset[src]

impl<'dec: 'a, 'a> Decode<'dec> for UnknownCapset<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowInputEventUnicode[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowUpdateGraphicsMsg<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowClipboardFormatDataRspMsg<'a>[src]

impl<'dec: 'a, 'a> Decode<'dec> for NowRawPacket<'a>[src]

Loading content...