Function in bytes coil-stdlib

replace

fn replace(Vec<byte> hay, Vec<byte> old, Vec<byte> new) -> Vec<byte>
Import
use bytes::{replace};
Source: src/bytes.hy

Returns a copy of hay with every non-overlapping old replaced by new, left to right.

An empty old replaces nothing.

Parameters#

NameType
hayVec<byte>
oldVec<byte>
newVec<byte>

Returns#

Vec<byte>

Contracts#

Checked according to --contracts (see Contracts).

ensures old.len() > 0 || eq(result, hay)
ensures old.len() == 0 || contains(hay, old) || eq(result, hay)

Examples#

use bytes::{replace, to_string};
use tests::assert;
let out = replace("a-b-c", "-", "+");
assert!((to_string(out) ?? "") == "a+b+c");

See also#

  • region_eq: True when a[ao..ao+n) equals b[bo..bo+n) (caller guarantees bounds).
  • to_hex: Encodes buf as lowercase hexadecimal, two digits per byte.
  • from_hex: Decodes hexadecimal text (either case) into bytes.
  • slice: Returns a copy of src[start..end] (end exclusive), with both offsets clamped to the buffer.
  • concat: Returns a new buffer holding a followed by b.
  • eq: Returns true when a and b have the same length and the same bytes.
  • find_from: Returns the offset of the first needle in hay at or after start, or -1.
  • find: Returns the offset of the first needle in hay, or -1.
↑ ↓ navigate ↵ open