import type { SidebarItem } from "./types";

export const forgeStdReference: SidebarItem = {
    text: "Reference",
    collapsed: true,
    items: [
        { text: 'Overview', link: '/reference/forge-std/overview' },
        { text: 'Std Logs', link: '/reference/forge-std/std-logs' },
        {
            text: 'Std Assertions',
            link: '/reference/forge-std/std-assertions',
            collapsed: true,
            items: [
                { text: 'fail', link: '/reference/forge-std/fail' },
                { text: 'assertTrue', link: '/reference/forge-std/assertTrue' },
                { text: 'assertFalse', link: '/reference/forge-std/assertFalse' },
                { text: 'assertEq', link: '/reference/forge-std/assertEq' },
                { text: 'assertEqDecimal', link: '/reference/forge-std/assertEqDecimal' },
                { text: 'assertNotEq', link: '/reference/forge-std/assertNotEq' },
                { text: 'assertNotEqDecimal', link: '/reference/forge-std/assertNotEqDecimal' },
                { text: 'assertLt', link: '/reference/forge-std/assertLt' },
                { text: 'assertLtDecimal', link: '/reference/forge-std/assertLtDecimal' },
                { text: 'assertGt', link: '/reference/forge-std/assertGt' },
                { text: 'assertGtDecimal', link: '/reference/forge-std/assertGtDecimal' },
                { text: 'assertLe', link: '/reference/forge-std/assertLe' },
                { text: 'assertLeDecimal', link: '/reference/forge-std/assertLeDecimal' },
                { text: 'assertGe', link: '/reference/forge-std/assertGe' },
                { text: 'assertGeDecimal', link: '/reference/forge-std/assertGeDecimal' },
                { text: 'assertApproxEqAbs', link: '/reference/forge-std/assertApproxEqAbs' },
                { text: 'assertApproxEqAbsDecimal', link: '/reference/forge-std/assertApproxEqAbsDecimal' },
                { text: 'assertApproxEqRel', link: '/reference/forge-std/assertApproxEqRel' },
                { text: 'assertApproxEqRelDecimal', link: '/reference/forge-std/assertApproxEqRelDecimal' },
            ],
        },
        {
            text: 'Std Cheats',
            link: '/reference/forge-std/std-cheats',
            collapsed: true,
            items: [
                { text: 'skip', link: '/reference/forge-std/skip' },
                { text: 'rewind', link: '/reference/forge-std/rewind' },
                { text: 'hoax', link: '/reference/forge-std/hoax' },
                { text: 'startHoax', link: '/reference/forge-std/startHoax' },
                { text: 'deal', link: '/reference/forge-std/deal' },
                { text: 'deployCode', link: '/reference/forge-std/deployCode' },
                { text: 'deployCodeTo', link: '/reference/forge-std/deployCodeTo' },
                { text: 'bound', link: '/reference/forge-std/bound' },
                { text: 'changePrank', link: '/reference/forge-std/change-prank' },
                { text: 'makeAddr', link: '/reference/forge-std/make-addr' },
                { text: 'makeAddrAndKey', link: '/reference/forge-std/make-addr-and-key' },
                { text: 'noGasMetering', link: '/reference/forge-std/noGasMetering' },
                { text: 'assumeNotPrecompile', link: '/reference/forge-std/assume-no-precompiles' },
                { text: 'assumePayable', link: '/reference/forge-std/assume-payable' },
            ],
        },
        {
            text: 'Std Config',
            link: '/reference/forge-std/std-config',
            collapsed: true,
            items: [],
        },
        {
            text: 'Std Errors',
            link: '/reference/forge-std/std-errors',
            collapsed: true,
            items: [
                { text: 'assertionError', link: '/reference/forge-std/assertionError' },
                { text: 'arithmeticError', link: '/reference/forge-std/arithmeticError' },
                { text: 'divisionError', link: '/reference/forge-std/divisionError' },
                { text: 'enumConversionError', link: '/reference/forge-std/enumConversionError' },
                { text: 'encodeStorageError', link: '/reference/forge-std/encodeStorageError' },
                { text: 'popError', link: '/reference/forge-std/popError' },
                { text: 'indexOOBError', link: '/reference/forge-std/indexOOBError' },
                { text: 'memOverflowError', link: '/reference/forge-std/memOverflowError' },
                { text: 'zeroVarError', link: '/reference/forge-std/zeroVarError' },
            ],
        },
        {
            text: 'Std Storage',
            link: '/reference/forge-std/std-storage',
            collapsed: true,
            items: [
                { text: 'target', link: '/reference/forge-std/target' },
                { text: 'sig', link: '/reference/forge-std/sig' },
                { text: 'with_key', link: '/reference/forge-std/with_key' },
                { text: 'depth', link: '/reference/forge-std/depth' },
                { text: 'enable_packed_slots', link: '/reference/forge-std/enable_packed_slots' },
                { text: 'checked_write', link: '/reference/forge-std/checked_write' },
                { text: 'find', link: '/reference/forge-std/find' },
                { text: 'read', link: '/reference/forge-std/read' },
            ],
        },
        {
            text: 'Std Math',
            link: '/reference/forge-std/std-math',
            collapsed: true,
            items: [
                { text: 'abs', link: '/reference/forge-std/abs' },
                { text: 'delta', link: '/reference/forge-std/delta' },
                { text: 'percentDelta', link: '/reference/forge-std/percentDelta' },
            ],
        },
        {
            text: 'Script Utils',
            link: '/reference/forge-std/script-utils',
            collapsed: true,
            items: [
                { text: 'computeCreateAddress', link: '/reference/forge-std/compute-create-address' },
                { text: 'deriveRememberKey', link: '/reference/forge-std/derive-remember-key' },
            ],
        },
        { text: 'Console Logging', link: '/reference/forge-std/console-log' },
    ],
};
