packages feed

ppad-bolt1-0.1.0: bench/Weight.hs

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Fixtures
import Lightning.Protocol.BOLT1
import Weigh

main :: IO ()
main = mainWith $ do
  wgroup "primitives" $ do
    func "baseline (weigh overhead)" (+ (1 :: Int)) 1
    func "encode_u16" encode_u16 0x0102
    func "encode_u64" encode_u64 0x0102030405060708
    func "decode_u64" decode_u64 "\x01\x02\x03\x04\x05\x06\x07\x08"
    func "encode_tu64" encode_tu64 0x010203
    func "encode_bigsize (9 bytes)" encode_bigsize 0x100000000
  wgroup "tlv" $ do
    func "encode_tlv_stream (21 records)" encode_tlv_stream tlvs
    func "decode_tlv_stream (21 records)"
      (decode_tlv_stream (const False)) tlvs_bytes
  wgroup "messages" $ do
    func "encode init" encode_message init_msg
    func "decode init" decode_message init_bytes
    func "encode ping" encode_message ping_msg
    func "decode ping" decode_message ping_bytes
    func "encode error (with tlvs)" encode_message error_msg
    func "decode error (with tlvs)" decode_message error_bytes