Main.hs (1215B)
1 {-# LANGUAGE OverloadedStrings #-} 2 3 module Main where 4 5 import Criterion.Main 6 import Fixtures 7 import Lightning.Protocol.BOLT1 8 9 main :: IO () 10 main = defaultMain [ 11 bgroup "primitives" [ 12 bench "encode_u64" $ nf encode_u64 0x0102030405060708 13 , bench "decode_u64" $ nf decode_u64 "\x01\x02\x03\x04\x05\x06\x07\x08" 14 , bench "encode_tu64" $ nf encode_tu64 0x010203 15 , bench "decode_tu64" $ nf decode_tu64 "\x01\x02\x03" 16 , bench "encode_bigsize (9 bytes)" $ nf encode_bigsize 0x100000000 17 , bench "decode_bigsize (9 bytes)" $ 18 nf decode_bigsize "\xff\x00\x00\x00\x01\x00\x00\x00\x00" 19 ] 20 , bgroup "tlv" [ 21 bench "encode_tlv_stream (21 records)" $ nf encode_tlv_stream tlvs 22 , bench "decode_tlv_stream (21 records)" $ 23 nf (decode_tlv_stream (const False)) tlvs_bytes 24 ] 25 , bgroup "messages" [ 26 bench "encode init" $ nf encode_message init_msg 27 , bench "decode init" $ nf decode_message init_bytes 28 , bench "encode ping" $ nf encode_message ping_msg 29 , bench "decode ping" $ nf decode_message ping_bytes 30 , bench "encode error (with tlvs)" $ nf encode_message error_msg 31 , bench "decode error (with tlvs)" $ nf decode_message error_bytes 32 ] 33 ]