type Props = {
  class?: string;
  language?: string;
  autoDetect?: boolean;
  ignoreIllegals?: boolean;
  children: any;
};

import { Prettify } from "./Prettify";

/**
 * Like `Readonly`, but also makes all nested properties readonly.
 */
export type DeepReadonly<T> = Prettify<_DeepReadonly<T>>;

type _DeepReadonly<T> = T extends Record<string | number | symbol, unknown>
  ? Readonly<{
      [P in keyof T]: _DeepReadonly<T[P]>;
    }>
  : T;


export function escapeHtml(value: string): string {
  return value
    .replace(/&/g, "&amp;")
    .replace(/</g, "&lt;")
    .replace(/>/g, "&gt;")
    .replace(/"/g, "&quot;")
    .replace(/'/g, "&#x27;");
}
type Props = {
  class?: string;
  language?: string;
  autoDetect?: boolean;
  ignoreIllegals?: boolean;
  children: any;
};

import { Prettify } from "./Prettify";

/**
 * Like `Readonly`, but also makes all nested properties readonly.
 */
export type DeepReadonly<T> = Prettify<_DeepReadonly<T>>;

type _DeepReadonly<T> = T extends Record<string | number | symbol, unknown>
  ? Readonly<{
      [P in keyof T]: _DeepReadonly<T[P]>;
    }>
  : T;


export function escapeHtml(value: string): string {
  return value
    .replace(/&/g, "&amp;")
    .replace(/</g, "&lt;")
    .replace(/>/g, "&gt;")
    .replace(/"/g, "&quot;")
    .replace(/'/g, "&#x27;");
}
const std = @import("std");

pub fn main() !void {
    var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){};
    defer std.debug.assert(general_purpose_allocator.deinit() == .ok);

    const gpa = general_purpose_allocator.allocator();

    const u32_ptr = try gpa.create(u32);
    _ = u32_ptr; // silences unused variable error

    // oops I forgot to free!
}
const std = @import("std");

pub fn main() !void {
    var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){};
    defer std.debug.assert(general_purpose_allocator.deinit() == .ok);

    const gpa = general_purpose_allocator.allocator();

    const u32_ptr = try gpa.create(u32);
    _ = u32_ptr; // silences unused variable error

    // oops I forgot to free!
}