package btrfs

import (
	"encoding/binary"
	"fmt"
	"hash/crc32"
)

type CSum [0x20]byte

func (csum CSum) String() string {
	return fmt.Sprintf("%x", csum)
}

func CRC32c(data []byte) CSum {
	crc := crc32.Update(0, crc32.MakeTable(crc32.Castagnoli), data)

	var ret CSum
	binary.LittleEndian.PutUint32(ret[:], crc)
	return ret
}