Module iter

Expand description

Iterator Adaptors.

Iterator extension traits and blanket implementations to convert:

  • BytesToFes: An iterator over bytes to an iterator over field elements.
  • FesToBytes: An iterator over field elements to an iterator over bytes.
  • Checksummed: An iterator over field elements that appends the checksum.

WARNING: This module does not enforce the maximum length of an encoded bech32 string (90 chars).

§Examples

use bech32::{Bech32, ByteIterExt, Fe32IterExt, Fe32, Hrp};

let data = [
    0x75, 0x1e, 0x76, 0xe8, 0x19, 0x91, 0x96, 0xd4,
    0x54, 0x94, 0x1c, 0x45, 0xd1, 0xb3, 0xa3, 0x23,
    0xf1, 0x43, 0x3b, 0xd6,
];

// Convert byte data to GF32 field elements.
let fe_iter = data.iter().copied().bytes_to_fes();

// Convert field elements back to bytes.
let byte_iter = fe_iter.fes_to_bytes();

Structs§

BytesToFes
Iterator adaptor that converts bytes to GF32 elements.
Checksummed
Iterator adaptor for field-element-yielding iterator, which tacks a checksum onto the end of the yielded data.
FesToBytes
Iterator adaptor that converts GF32 elements to bytes.

Traits§

ByteIterExt
Extension trait for byte iterators which provides an adaptor to GF32 elements.
Fe32IterExt
Extension trait for field element iterators.