// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.

import type { BufReader } from "./buf_reader.ts";

/**
 * Read big endian 16bit short from a {@linkcode BufReader}.
 *
 * @example Usage
 * ```ts
 * import { Buffer } from "@std/io/buffer"
 * import { BufReader } from "@std/io/buf-reader";
 * import { readShort } from "@std/io/read-short";
 * import { assertEquals } from "@std/assert/equals";
 *
 * const buf = new BufReader(new Buffer(new Uint8Array([0x12, 0x34])));
 * const short = await readShort(buf);
 * assertEquals(short, 0x1234);
 * ```
 *
 * @param buf The reader to read from
 * @returns The 16bit short
 *
 * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead.
 */
export async function readShort(buf: BufReader): Promise<number | null> {
  const high = await buf.readByte();
  if (high === null) return null;
  const low = await buf.readByte();
  if (low === null) throw new Deno.errors.UnexpectedEof();
  return (high << 8) | low;
}

// denoCacheMetadata={"headers":{"alt-svc":"h3=\":443\"; ma=86400","date":"Tue, 28 Jul 2026 12:31:15 GMT","cache-control":"public, max-age=31536000, immutable","server":"cloudflare","access-control-expose-headers":"*","x-jsr-backend":"modules","content-type":"text/typescript","set-cookie":"__cf_bm=PrzAljlE1HPvHEf.ql4mSpOW0PxBjtqILkchwUDCVvU-1785241875.0356398-1.0.1.1-oo8DddzaRakpcaaK.rzTCjTf7p1zgJqnclB68qGIVHrzchTF5EVX6WgnHjmfPHC2xMuoqhUvEjg4IppWStfD9ggp.W7GZp6VAl2f2J4fKQ6OrOb0cbdnyTGb_mLwsXGg; HttpOnly; SameSite=None; Secure; Path=/; Domain=jsr.io; Expires=Tue, 28 Jul 2026 13:01:15 GMT","x-content-type-options":"nosniff","content-security-policy":"default-src 'none'; script-src 'none'; style-src 'none'; img-src 'none'; font-src 'none'; connect-src 'none'; frame-src 'none'; object-src 'none'; frame-ancestors 'none'; sandbox; form-action 'none';","cross-origin-resource-policy":"cross-origin","cf-ray":"a223e656f8757db6-LAX","etag":"\"5472d0aeecbcf55b0a7af411c7e85dd3\"","vary":"Origin","x-robots-tag":"noindex","access-control-allow-origin":"*","report-to":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=OTaH10OjAyImXCE7SrsDId%2FWHu1zAaGPu8DwlePoIftAThITEHjWMvqdUSG2ACpeJkYZwR%2BhCDhGHSNr7gnZW4pxfSHQv5RdoIMYzaMZw59beqBNeWeCp8M%3D\"}]}","nel":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}","content-length":"1070"},"url":"https://jsr.io/@std/io/0.224.8/read_short.ts","time":1785241875}