// Copyright 2026 International Digital Economy Academy
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

///|
/// Encodes a string into an ASCII byte array.
///
/// Panics if the string contains any non-ASCII code units.
pub fn encode(str : StringView) -> Bytes {
  let length = str.length()
  let arr = FixedArray::make(length, b'\x00')
  for i, code_unit in str.code_units() {
    if code_unit > 0x7F {
      panic()
    }
    arr[i] = code_unit.to_byte()
  }
  arr.unsafe_reinterpret_as_bytes()
}