stellar_xdr::next

Enum ContractCostType

Source
#[repr(i32)]
pub enum ContractCostType {
Show 70 variants WasmInsnExec = 0, MemAlloc = 1, MemCpy = 2, MemCmp = 3, DispatchHostFunction = 4, VisitObject = 5, ValSer = 6, ValDeser = 7, ComputeSha256Hash = 8, ComputeEd25519PubKey = 9, VerifyEd25519Sig = 10, VmInstantiation = 11, VmCachedInstantiation = 12, InvokeVmFunction = 13, ComputeKeccak256Hash = 14, DecodeEcdsaCurve256Sig = 15, RecoverEcdsaSecp256k1Key = 16, Int256AddSub = 17, Int256Mul = 18, Int256Div = 19, Int256Pow = 20, Int256Shift = 21, ChaCha20DrawBytes = 22, ParseWasmInstructions = 23, ParseWasmFunctions = 24, ParseWasmGlobals = 25, ParseWasmTableEntries = 26, ParseWasmTypes = 27, ParseWasmDataSegments = 28, ParseWasmElemSegments = 29, ParseWasmImports = 30, ParseWasmExports = 31, ParseWasmDataSegmentBytes = 32, InstantiateWasmInstructions = 33, InstantiateWasmFunctions = 34, InstantiateWasmGlobals = 35, InstantiateWasmTableEntries = 36, InstantiateWasmTypes = 37, InstantiateWasmDataSegments = 38, InstantiateWasmElemSegments = 39, InstantiateWasmImports = 40, InstantiateWasmExports = 41, InstantiateWasmDataSegmentBytes = 42, Sec1DecodePointUncompressed = 43, VerifyEcdsaSecp256r1Sig = 44, Bls12381EncodeFp = 45, Bls12381DecodeFp = 46, Bls12381G1CheckPointOnCurve = 47, Bls12381G1CheckPointInSubgroup = 48, Bls12381G2CheckPointOnCurve = 49, Bls12381G2CheckPointInSubgroup = 50, Bls12381G1ProjectiveToAffine = 51, Bls12381G2ProjectiveToAffine = 52, Bls12381G1Add = 53, Bls12381G1Mul = 54, Bls12381G1Msm = 55, Bls12381MapFpToG1 = 56, Bls12381HashToG1 = 57, Bls12381G2Add = 58, Bls12381G2Mul = 59, Bls12381G2Msm = 60, Bls12381MapFp2ToG2 = 61, Bls12381HashToG2 = 62, Bls12381Pairing = 63, Bls12381FrFromU256 = 64, Bls12381FrToU256 = 65, Bls12381FrAddSub = 66, Bls12381FrMul = 67, Bls12381FrPow = 68, Bls12381FrInv = 69,
}
Available on crate feature next only.
Expand description

ContractCostType is an XDR Enum defines as:

enum ContractCostType {
    // Cost of running 1 wasm instruction
    WasmInsnExec = 0,
    // Cost of allocating a slice of memory (in bytes)
    MemAlloc = 1,
    // Cost of copying a slice of bytes into a pre-allocated memory
    MemCpy = 2,
    // Cost of comparing two slices of memory
    MemCmp = 3,
    // Cost of a host function dispatch, not including the actual work done by
    // the function nor the cost of VM invocation machinary
    DispatchHostFunction = 4,
    // Cost of visiting a host object from the host object storage. Exists to
    // make sure some baseline cost coverage, i.e. repeatly visiting objects
    // by the guest will always incur some charges.
    VisitObject = 5,
    // Cost of serializing an xdr object to bytes
    ValSer = 6,
    // Cost of deserializing an xdr object from bytes
    ValDeser = 7,
    // Cost of computing the sha256 hash from bytes
    ComputeSha256Hash = 8,
    // Cost of computing the ed25519 pubkey from bytes
    ComputeEd25519PubKey = 9,
    // Cost of verifying ed25519 signature of a payload.
    VerifyEd25519Sig = 10,
    // Cost of instantiation a VM from wasm bytes code.
    VmInstantiation = 11,
    // Cost of instantiation a VM from a cached state.
    VmCachedInstantiation = 12,
    // Cost of invoking a function on the VM. If the function is a host function,
    // additional cost will be covered by `DispatchHostFunction`.
    InvokeVmFunction = 13,
    // Cost of computing a keccak256 hash from bytes.
    ComputeKeccak256Hash = 14,
    // Cost of decoding an ECDSA signature computed from a 256-bit prime modulus
    // curve (e.g. secp256k1 and secp256r1)
    DecodeEcdsaCurve256Sig = 15,
    // Cost of recovering an ECDSA secp256k1 key from a signature.
    RecoverEcdsaSecp256k1Key = 16,
    // Cost of int256 addition (`+`) and subtraction (`-`) operations
    Int256AddSub = 17,
    // Cost of int256 multiplication (`*`) operation
    Int256Mul = 18,
    // Cost of int256 division (`/`) operation
    Int256Div = 19,
    // Cost of int256 power (`exp`) operation
    Int256Pow = 20,
    // Cost of int256 shift (`shl`, `shr`) operation
    Int256Shift = 21,
    // Cost of drawing random bytes using a ChaCha20 PRNG
    ChaCha20DrawBytes = 22,

    // Cost of parsing wasm bytes that only encode instructions.
    ParseWasmInstructions = 23,
    // Cost of parsing a known number of wasm functions.
    ParseWasmFunctions = 24,
    // Cost of parsing a known number of wasm globals.
    ParseWasmGlobals = 25,
    // Cost of parsing a known number of wasm table entries.
    ParseWasmTableEntries = 26,
    // Cost of parsing a known number of wasm types.
    ParseWasmTypes = 27,
    // Cost of parsing a known number of wasm data segments.
    ParseWasmDataSegments = 28,
    // Cost of parsing a known number of wasm element segments.
    ParseWasmElemSegments = 29,
    // Cost of parsing a known number of wasm imports.
    ParseWasmImports = 30,
    // Cost of parsing a known number of wasm exports.
    ParseWasmExports = 31,
    // Cost of parsing a known number of data segment bytes.
    ParseWasmDataSegmentBytes = 32,

    // Cost of instantiating wasm bytes that only encode instructions.
    InstantiateWasmInstructions = 33,
    // Cost of instantiating a known number of wasm functions.
    InstantiateWasmFunctions = 34,
    // Cost of instantiating a known number of wasm globals.
    InstantiateWasmGlobals = 35,
    // Cost of instantiating a known number of wasm table entries.
    InstantiateWasmTableEntries = 36,
    // Cost of instantiating a known number of wasm types.
    InstantiateWasmTypes = 37,
    // Cost of instantiating a known number of wasm data segments.
    InstantiateWasmDataSegments = 38,
    // Cost of instantiating a known number of wasm element segments.
    InstantiateWasmElemSegments = 39,
    // Cost of instantiating a known number of wasm imports.
    InstantiateWasmImports = 40,
    // Cost of instantiating a known number of wasm exports.
    InstantiateWasmExports = 41,
    // Cost of instantiating a known number of data segment bytes.
    InstantiateWasmDataSegmentBytes = 42,

    // Cost of decoding a bytes array representing an uncompressed SEC-1 encoded
    // point on a 256-bit elliptic curve
    Sec1DecodePointUncompressed = 43,
    // Cost of verifying an ECDSA Secp256r1 signature
    VerifyEcdsaSecp256r1Sig = 44,

    // Cost of encoding a BLS12-381 Fp (base field element)
    Bls12381EncodeFp = 45,
    // Cost of decoding a BLS12-381 Fp (base field element)
    Bls12381DecodeFp = 46,
    // Cost of checking a G1 point lies on the curve
    Bls12381G1CheckPointOnCurve = 47,
    // Cost of checking a G1 point belongs to the correct subgroup
    Bls12381G1CheckPointInSubgroup = 48,
    // Cost of checking a G2 point lies on the curve
    Bls12381G2CheckPointOnCurve = 49,
    // Cost of checking a G2 point belongs to the correct subgroup
    Bls12381G2CheckPointInSubgroup = 50,
    // Cost of converting a BLS12-381 G1 point from projective to affine coordinates
    Bls12381G1ProjectiveToAffine = 51,
    // Cost of converting a BLS12-381 G2 point from projective to affine coordinates
    Bls12381G2ProjectiveToAffine = 52,
    // Cost of performing BLS12-381 G1 point addition
    Bls12381G1Add = 53,
    // Cost of performing BLS12-381 G1 scalar multiplication
    Bls12381G1Mul = 54,
    // Cost of performing BLS12-381 G1 multi-scalar multiplication (MSM)
    Bls12381G1Msm = 55,
    // Cost of mapping a BLS12-381 Fp field element to a G1 point
    Bls12381MapFpToG1 = 56,
    // Cost of hashing to a BLS12-381 G1 point
    Bls12381HashToG1 = 57,
    // Cost of performing BLS12-381 G2 point addition
    Bls12381G2Add = 58,
    // Cost of performing BLS12-381 G2 scalar multiplication
    Bls12381G2Mul = 59,
    // Cost of performing BLS12-381 G2 multi-scalar multiplication (MSM)
    Bls12381G2Msm = 60,
    // Cost of mapping a BLS12-381 Fp2 field element to a G2 point
    Bls12381MapFp2ToG2 = 61,
    // Cost of hashing to a BLS12-381 G2 point
    Bls12381HashToG2 = 62,
    // Cost of performing BLS12-381 pairing operation
    Bls12381Pairing = 63,
    // Cost of converting a BLS12-381 scalar element from U256
    Bls12381FrFromU256 = 64,
    // Cost of converting a BLS12-381 scalar element to U256
    Bls12381FrToU256 = 65,
    // Cost of performing BLS12-381 scalar element addition/subtraction
    Bls12381FrAddSub = 66,
    // Cost of performing BLS12-381 scalar element multiplication
    Bls12381FrMul = 67,
    // Cost of performing BLS12-381 scalar element exponentiation
    Bls12381FrPow = 68,
    // Cost of performing BLS12-381 scalar element inversion
    Bls12381FrInv = 69
};

Variants§

§

WasmInsnExec = 0

§

MemAlloc = 1

§

MemCpy = 2

§

MemCmp = 3

§

DispatchHostFunction = 4

§

VisitObject = 5

§

ValSer = 6

§

ValDeser = 7

§

ComputeSha256Hash = 8

§

ComputeEd25519PubKey = 9

§

VerifyEd25519Sig = 10

§

VmInstantiation = 11

§

VmCachedInstantiation = 12

§

InvokeVmFunction = 13

§

ComputeKeccak256Hash = 14

§

DecodeEcdsaCurve256Sig = 15

§

RecoverEcdsaSecp256k1Key = 16

§

Int256AddSub = 17

§

Int256Mul = 18

§

Int256Div = 19

§

Int256Pow = 20

§

Int256Shift = 21

§

ChaCha20DrawBytes = 22

§

ParseWasmInstructions = 23

§

ParseWasmFunctions = 24

§

ParseWasmGlobals = 25

§

ParseWasmTableEntries = 26

§

ParseWasmTypes = 27

§

ParseWasmDataSegments = 28

§

ParseWasmElemSegments = 29

§

ParseWasmImports = 30

§

ParseWasmExports = 31

§

ParseWasmDataSegmentBytes = 32

§

InstantiateWasmInstructions = 33

§

InstantiateWasmFunctions = 34

§

InstantiateWasmGlobals = 35

§

InstantiateWasmTableEntries = 36

§

InstantiateWasmTypes = 37

§

InstantiateWasmDataSegments = 38

§

InstantiateWasmElemSegments = 39

§

InstantiateWasmImports = 40

§

InstantiateWasmExports = 41

§

InstantiateWasmDataSegmentBytes = 42

§

Sec1DecodePointUncompressed = 43

§

VerifyEcdsaSecp256r1Sig = 44

§

Bls12381EncodeFp = 45

§

Bls12381DecodeFp = 46

§

Bls12381G1CheckPointOnCurve = 47

§

Bls12381G1CheckPointInSubgroup = 48

§

Bls12381G2CheckPointOnCurve = 49

§

Bls12381G2CheckPointInSubgroup = 50

§

Bls12381G1ProjectiveToAffine = 51

§

Bls12381G2ProjectiveToAffine = 52

§

Bls12381G1Add = 53

§

Bls12381G1Mul = 54

§

Bls12381G1Msm = 55

§

Bls12381MapFpToG1 = 56

§

Bls12381HashToG1 = 57

§

Bls12381G2Add = 58

§

Bls12381G2Mul = 59

§

Bls12381G2Msm = 60

§

Bls12381MapFp2ToG2 = 61

§

Bls12381HashToG2 = 62

§

Bls12381Pairing = 63

§

Bls12381FrFromU256 = 64

§

Bls12381FrToU256 = 65

§

Bls12381FrAddSub = 66

§

Bls12381FrMul = 67

§

Bls12381FrPow = 68

§

Bls12381FrInv = 69

Implementations§

Source§

impl ContractCostType

Source

pub const VARIANTS: [ContractCostType; 70] = _

Source

pub const VARIANTS_STR: [&'static str; 70] = _

Source

pub const fn name(&self) -> &'static str

Source

pub const fn variants() -> [ContractCostType; 70]

Trait Implementations§

Source§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractCostType

Source§

fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>

Generate an arbitrary value of Self from the given unstructured data. Read more
Source§

fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
Source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Source§

impl Clone for ContractCostType

Source§

fn clone(&self) -> ContractCostType

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ContractCostType

Source§

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

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

impl<'de> Deserialize<'de> for ContractCostType

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for ContractCostType

Source§

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

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

impl From<ContractCostType> for i32

Source§

fn from(e: ContractCostType) -> Self

Converts to this type from the input type.
Source§

impl Hash for ContractCostType

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl JsonSchema for ContractCostType

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl Name for ContractCostType

Source§

fn name(&self) -> &'static str

Source§

impl Ord for ContractCostType

Source§

fn cmp(&self, other: &ContractCostType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for ContractCostType

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 PartialOrd for ContractCostType

Source§

fn partial_cmp(&self, other: &ContractCostType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl ReadXdr for ContractCostType

Source§

fn read_xdr<R: Read>(r: &mut Limited<R>) -> Result<Self, Error>

Available on crate feature std only.
Read the XDR and construct the type. Read more
Source§

fn read_xdr_base64<R: Read>(r: &mut Limited<R>) -> Result<Self, Error>

Available on crate feature base64 only.
Construct the type from the XDR bytes base64 encoded. Read more
Source§

fn read_xdr_to_end<R: Read>(r: &mut Limited<R>) -> Result<Self, Error>

Available on crate feature std only.
Read the XDR and construct the type, and consider it an error if the read does not completely consume the read implementation. Read more
Source§

fn read_xdr_base64_to_end<R: Read>(r: &mut Limited<R>) -> Result<Self, Error>

Available on crate feature base64 only.
Construct the type from the XDR bytes base64 encoded. Read more
Source§

fn read_xdr_into<R: Read>(&mut self, r: &mut Limited<R>) -> Result<(), Error>

Available on crate feature std only.
Read the XDR and construct the type. Read more
Source§

fn read_xdr_into_to_end<R: Read>( &mut self, r: &mut Limited<R>, ) -> Result<(), Error>

Available on crate feature std only.
Read the XDR into the existing value, and consider it an error if the read does not completely consume the read implementation. Read more
Source§

fn read_xdr_iter<R: Read>(r: &mut Limited<R>) -> ReadXdrIter<&mut R, Self>

Available on crate feature std only.
Create an iterator that reads the read implementation as a stream of values that are read into the implementing type. Read more
Source§

fn read_xdr_base64_iter<R: Read>( r: &mut Limited<R>, ) -> ReadXdrIter<DecoderReader<'_, R>, Self>

Available on crate feature base64 only.
Create an iterator that reads the read implementation as a stream of values that are read into the implementing type.
Source§

fn from_xdr(bytes: impl AsRef<[u8]>, limits: Limits) -> Result<Self, Error>

Available on crate feature std only.
Construct the type from the XDR bytes. Read more
Source§

fn from_xdr_base64(b64: impl AsRef<[u8]>, limits: Limits) -> Result<Self, Error>

Available on crate feature base64 only.
Construct the type from the XDR bytes base64 encoded. Read more
Source§

impl Serialize for ContractCostType

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl TryFrom<i32> for ContractCostType

Source§

type Error = Error

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

fn try_from(i: i32) -> Result<Self, Error>

Performs the conversion.
Source§

impl Variants<ContractCostType> for ContractCostType

Source§

impl WriteXdr for ContractCostType

Source§

fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error>

Available on crate feature std only.
Source§

fn to_xdr(&self, limits: Limits) -> Result<Vec<u8>, Error>

Available on crate feature std only.
Source§

fn to_xdr_base64(&self, limits: Limits) -> Result<String, Error>

Available on crate feature base64 only.
Source§

impl Copy for ContractCostType

Source§

impl Enum for ContractCostType

Source§

impl Eq for ContractCostType

Source§

impl StructuralPartialEq for ContractCostType

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, dst: *mut u8)

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

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> 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§

default 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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,