Skip to main content

Encode

Trait Encode 

Source
pub trait Encode {
    type HeadPtr;

    // Required methods
    fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr;
    fn encode_body(&self, head: Self::HeadPtr, buf: &mut BytesMut);

    // Provided method
    fn encode(&self) -> Vec<u8>  { ... }
}

Required Associated Types§

Required Methods§

Source

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source

fn encode_body(&self, head: Self::HeadPtr, buf: &mut BytesMut)

Provided Methods§

Source

fn encode(&self) -> Vec<u8>

Implementations on Foreign Types§

Source§

impl Encode for bool

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for f32

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for f64

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for i8

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for i16

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for i32

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for i64

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for str

Source§

type HeadPtr = ReversePointer

Source§

fn encode_head(&self, buf: &mut BytesMut) -> ReversePointer

Source§

fn encode_body(&self, offset: Self::HeadPtr, buf: &mut BytesMut)

Source§

impl Encode for u8

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for u16

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for u32

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for u64

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, _head: Self::HeadPtr, _buf: &mut BytesMut)

Source§

impl Encode for ()

Source§

type HeadPtr = ()

Source§

fn encode_head(&self, _buf: &mut BytesMut)

Source§

fn encode_body(&self, _: (), _buf: &mut BytesMut)

Source§

impl<E: Encode + Layout> Encode for Option<E>

Source§

type HeadPtr = Option<Result<<E as Encode>::HeadPtr, ReversePointer>>

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, head: Self::HeadPtr, buf: &mut BytesMut)

Source§

impl<E: Encode> Encode for [E]

Source§

type HeadPtr = ReversePointer

Source§

fn encode_head(&self, buf: &mut BytesMut) -> ReversePointer

Source§

fn encode_body(&self, offset_ptr: Self::HeadPtr, buf: &mut BytesMut)

Source§

impl<T> Encode for &T
where T: Encode,

Source§

type HeadPtr = <T as Encode>::HeadPtr

Source§

fn encode_head(&self, buf: &mut BytesMut) -> Self::HeadPtr

Source§

fn encode_body(&self, head: Self::HeadPtr, buf: &mut BytesMut)

Implementors§

Source§

impl Encode for lutra_bin::br::ExprKind

Source§

type HeadPtr = ExprKindHeadPtr

Source§

impl Encode for Literal

Source§

type HeadPtr = LiteralHeadPtr

Source§

impl Encode for TyKind

Source§

type HeadPtr = TyKindHeadPtr

Source§

impl Encode for Decl

Source§

type HeadPtr = DeclHeadPtr

Source§

impl Encode for lutra_bin::ir::ExprKind

Source§

type HeadPtr = ExprKindHeadPtr

Source§

impl Encode for Pointer

Source§

type HeadPtr = PointerHeadPtr

Source§

impl Encode for TyPrimitive

Source§

impl Encode for lutra_bin::rr::Program

Source§

type HeadPtr = ProgramHeadPtr

Source§

impl Encode for Array

Source§

type HeadPtr = ArrayHeadPtr

Source§

impl Encode for lutra_bin::br::Binding

Source§

type HeadPtr = BindingHeadPtr

Source§

impl Encode for lutra_bin::br::Call

Source§

type HeadPtr = CallHeadPtr

Source§

impl Encode for Deref

Source§

type HeadPtr = DerefHeadPtr

Source§

impl Encode for lutra_bin::br::EnumEq

Source§

type HeadPtr = EnumEqHeadPtr

Source§

impl Encode for lutra_bin::br::EnumVariant

Source§

type HeadPtr = EnumVariantHeadPtr

Source§

impl Encode for lutra_bin::br::Expr

Source§

type HeadPtr = ExprHeadPtr

Source§

impl Encode for ExternalSymbol

Source§

type HeadPtr = ExternalSymbolHeadPtr

Source§

impl Encode for lutra_bin::br::Function

Source§

type HeadPtr = FunctionHeadPtr

Source§

impl Encode for Offset

Source§

type HeadPtr = OffsetHeadPtr

Source§

impl Encode for lutra_bin::br::Program

Source§

type HeadPtr = ProgramHeadPtr

Source§

impl Encode for Sid

Source§

impl Encode for lutra_bin::br::SwitchBranch

Source§

type HeadPtr = SwitchBranchHeadPtr

Source§

impl Encode for Tuple

Source§

type HeadPtr = TupleHeadPtr

Source§

impl Encode for lutra_bin::br::TupleField

Source§

type HeadPtr = TupleFieldHeadPtr

Source§

impl Encode for Ty

Source§

type HeadPtr = TyHeadPtr

Source§

impl Encode for TyEnumVariant

Source§

type HeadPtr = TyEnumVariantHeadPtr

Source§

impl Encode for TyFunction

Source§

type HeadPtr = TyFunctionHeadPtr

Source§

impl Encode for lutra_bin::br::TyLayout

Source§

type HeadPtr = TyLayoutHeadPtr

Source§

impl Encode for TyTupleField

Source§

type HeadPtr = TyTupleFieldHeadPtr

Source§

impl Encode for lutra_bin::ir::Binding

Source§

type HeadPtr = BindingHeadPtr

Source§

impl Encode for lutra_bin::ir::Call

Source§

type HeadPtr = CallHeadPtr

Source§

impl Encode for lutra_bin::ir::EnumEq

Source§

type HeadPtr = EnumEqHeadPtr

Source§

impl Encode for EnumUnwrap

Source§

type HeadPtr = EnumUnwrapHeadPtr

Source§

impl Encode for lutra_bin::ir::EnumVariant

Source§

type HeadPtr = EnumVariantHeadPtr

Source§

impl Encode for lutra_bin::ir::Expr

Source§

type HeadPtr = ExprHeadPtr

Source§

impl Encode for ExternalPtr

Source§

type HeadPtr = ExternalPtrHeadPtr

Source§

impl Encode for lutra_bin::ir::Function

Source§

type HeadPtr = FunctionHeadPtr

Source§

impl Encode for Module

Source§

type HeadPtr = ModuleHeadPtr

Source§

impl Encode for ModuledeclsItems

Source§

type HeadPtr = ModuledeclsItemsHeadPtr

Source§

impl Encode for ParameterPtr

Source§

type HeadPtr = ParameterPtrHeadPtr

Source§

impl Encode for Path

Source§

impl Encode for lutra_bin::ir::Program

Source§

type HeadPtr = ProgramHeadPtr

Source§

impl Encode for lutra_bin::ir::SwitchBranch

Source§

type HeadPtr = SwitchBranchHeadPtr

Source§

impl Encode for lutra_bin::ir::TupleField

Source§

type HeadPtr = TupleFieldHeadPtr

Source§

impl Encode for TupleLookup

Source§

type HeadPtr = TupleLookupHeadPtr

Source§

impl Encode for TyDef

Source§

type HeadPtr = TyDefHeadPtr

Source§

impl Encode for lutra_bin::ir::TyLayout

Source§

type HeadPtr = TyLayoutHeadPtr

Source§

impl Encode for EnumFormat

Source§

type HeadPtr = EnumFormatHeadPtr

Source§

impl Encode for EnumVariantFormat

Source§

type HeadPtr = EnumVariantFormatHeadPtr

Source§

impl Encode for ProgramType

Source§

type HeadPtr = ProgramTypeHeadPtr

Source§

impl Encode for SqlProgram

Source§

type HeadPtr = SqlProgramHeadPtr

Source§

impl Encode for String

Source§

impl<E: Encode> Encode for Vec<E>