Skip to main content

TonCellNum

Trait TonCellNum 

Source
pub trait TonCellNum:
    Display
    + Sized
    + Clone
    + Zero
    + PartialOrd {
    // Required methods
    fn tcn_write_bits(
        &self,
        writer: &mut CellBuilder,
        bits_len: usize,
    ) -> TonCoreResult<()>;
    fn tcn_read_bits(
        reader: &mut CellParser<'_>,
        bits_len: usize,
    ) -> TonCoreResult<Self>;
    fn tcn_min_bits_len(&self) -> usize;
}
Expand description

Allows generic read/write operation for any numeric type Implemented for: All primitives types (i8, u8, i16, u16, i32, u32, i64, u64, i128, u128, isize, usize) Fastnum types (I/U128, I/U256, I/U512, I/U1024) BigNum types: BigInt/BigUint

Caller (CellBuilder) provides the following guarantees:

  • bits_len != 0 (CellBuilder & CellParser handle zero bits itself)
  • bits_len >= tcn_min_bits_len()

Caller (CellParser) provides the following guarantees:

  • bits_len != 0 (CellBuilder & CellParser handle zero bits_len itself)

Required Methods§

Source

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source

fn tcn_min_bits_len(&self) -> usize

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl TonCellNum for BigInt

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for BigUint

Slow implementation uses U/I1024 to support bignum If you use bignum, you likely don’t care about performance that much

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for I128

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for I256

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for I512

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for I1024

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for U128

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for U256

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for U512

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for U1024

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for i8

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for i16

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for i32

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for i64

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for i128

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for isize

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> Result<(), TonCoreError>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> Result<Self, TonCoreError>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for u8

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for u16

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for u32

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for u64

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for u128

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Source§

impl TonCellNum for usize

Source§

fn tcn_write_bits( &self, writer: &mut CellBuilder, bits_len: usize, ) -> TonCoreResult<()>

Source§

fn tcn_read_bits( reader: &mut CellParser<'_>, bits_len: usize, ) -> TonCoreResult<Self>

Source§

fn tcn_min_bits_len(&self) -> usize

Implementors§