Skip to content

Instantly share code, notes, and snippets.

@dminuoso

dminuoso/f.hs Secret

Created August 22, 2022 10:27
Show Gist options
  • Save dminuoso/4a447d1587474d8aea60d5b845a8988c to your computer and use it in GitHub Desktop.
Save dminuoso/4a447d1587474d8aea60d5b845a8988c to your computer and use it in GitHub Desktop.
word8ToArpa6Label :: Word8 -> DomainLabel
word8ToArpa6Label w = case fromIntegral w of
I# n -> unsafeSingletonDomainLabel (W8# (indexWord8OffAddr# arpa6Labels n))
where
arpa6Labels :: Addr#
arpa6Labels = "0123456789abcdeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"#
word8ToArpaLabel :: Word8 -> DomainLabel
word8ToArpaLabel = unsafeMkDomainLabel . V.unsafeIndex ipv4Labels . fromIntegral
where
ipv4Labels :: V.Vector ShortByteString
ipv4Labels = V.fromList
[ "0", "1", "2", "3", "4", "5", "6", "7"
, "8", "9", "10", "11", "12", "13", "14", "15"
, "16", "17", "18", "19", "20", "21", "22", "23"
, "24", "25", "26", "27", "28", "29", "30", "31"
, "32", "33", "34", "35", "36", "37", "38", "39"
, "40", "41", "42", "43", "44", "45", "46", "47"
, "48", "49", "50", "51", "52", "53", "54", "55"
, "56", "57", "58", "59", "60", "61", "62", "63"
, "64", "65", "66", "67", "68", "69", "70", "71"
, "72", "73", "74", "75", "76", "77", "78", "79"
, "80", "81", "82", "83", "84", "85", "86", "87"
, "88", "89", "90", "91", "92", "93", "94", "95"
, "96", "97", "98", "99", "100", "101", "102", "103"
, "104", "105", "106", "107", "108", "109", "110", "111"
, "112", "113", "114", "115", "116", "117", "118", "119"
, "120", "121", "122", "123", "124", "125", "126", "127"
, "128", "129", "130", "131", "132", "133", "134", "135"
, "136", "137", "138", "139", "140", "141", "142", "143"
, "144", "145", "146", "147", "148", "149", "150", "151"
, "152", "153", "154", "155", "156", "157", "158", "159"
, "160", "161", "162", "163", "164", "165", "166", "167"
, "168", "169", "170", "171", "172", "173", "174", "175"
, "176", "177", "178", "179", "180", "181", "182", "183"
, "184", "185", "186", "187", "188", "189", "190", "191"
, "192", "193", "194", "195", "196", "197", "198", "199"
, "200", "201", "202", "203", "204", "205", "206", "207"
, "208", "209", "210", "211", "212", "213", "214", "215"
, "216", "217", "218", "219", "220", "221", "222", "223"
, "224", "225", "226", "227", "228", "229", "230", "231"
, "232", "233", "234", "235", "236", "237", "238", "239"
, "240", "241", "242", "243", "244", "245", "246", "247"
, "248", "249", "250", "251", "252", "253", "254", "255" ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment