// Generated by Lisette bindgen
// Source: crypto/sha512 (Go stdlib)
// Go: 1.25.10
// Lisette: 0.2.1

import "go:hash"

/// New returns a new [hash.Hash] computing the SHA-512 checksum. The Hash
/// also implements [encoding.BinaryMarshaler], [encoding.BinaryAppender] and
/// [encoding.BinaryUnmarshaler] to marshal and unmarshal the internal
/// state of the hash.
pub fn New() -> hash.Hash

/// New384 returns a new [hash.Hash] computing the SHA-384 checksum. The Hash
/// also implements [encoding.BinaryMarshaler], [encoding.BinaryAppender] and
/// [encoding.BinaryUnmarshaler] to marshal and unmarshal the internal
/// state of the hash.
pub fn New384() -> hash.Hash

/// New512_224 returns a new [hash.Hash] computing the SHA-512/224 checksum. The Hash
/// also implements [encoding.BinaryMarshaler], [encoding.BinaryAppender] and
/// [encoding.BinaryUnmarshaler] to marshal and unmarshal the internal
/// state of the hash.
pub fn New512_224() -> hash.Hash

/// New512_256 returns a new [hash.Hash] computing the SHA-512/256 checksum. The Hash
/// also implements [encoding.BinaryMarshaler], [encoding.BinaryAppender] and
/// [encoding.BinaryUnmarshaler] to marshal and unmarshal the internal
/// state of the hash.
pub fn New512_256() -> hash.Hash

/// Sum384 returns the SHA384 checksum of the data.
#[go(array_return)]
pub fn Sum384(data: Slice<byte>) -> Slice<byte>

/// Sum512 returns the SHA512 checksum of the data.
#[go(array_return)]
pub fn Sum512(data: Slice<byte>) -> Slice<byte>

/// Sum512_224 returns the Sum512/224 checksum of the data.
#[go(array_return)]
pub fn Sum512_224(data: Slice<byte>) -> Slice<byte>

/// Sum512_256 returns the Sum512/256 checksum of the data.
#[go(array_return)]
pub fn Sum512_256(data: Slice<byte>) -> Slice<byte>

pub const BlockSize = 128

pub const Size = 64

pub const Size224 = 28

pub const Size256 = 32

pub const Size384 = 48
