// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. // This module is browser compatible. /** * Returns `true` if the prefix array appears at the start of the source array, * `false` otherwise. * * The complexity of this function is `O(prefix.length)`. * * @param source Source array to check. * @param prefix Prefix array to check for. * @returns `true` if the prefix array appears at the start of the source array, * `false` otherwise. * * @example Basic usage * ```ts * import { startsWith } from "@std/bytes/starts-with"; * import { assertEquals } from "@std/assert"; * * const source = new Uint8Array([0, 1, 2, 1, 2, 1, 2, 3]); * const prefix = new Uint8Array([0, 1, 2]); * * assertEquals(startsWith(source, prefix), true); * ``` */ export function startsWith(source: Uint8Array, prefix: Uint8Array): boolean { if (prefix.length > source.length) { return false; } for (let i = 0; i < prefix.length; i++) { if (source[i] !== prefix[i]) return false; } return true; }