package inetcksum import ( `io` ) // New returns a new initialized [InetChecksum]. It will never panic. func New() (i *InetChecksum) { i = &InetChecksum{} _ = i.Aligned() return } /* NewFromBytes returns a new [InetChecksum] initialized with explicit bytes. b may be nil or 0-length; this will not cause an error. */ func NewFromBytes(b []byte) (i *InetChecksum, copied int, err error) { var cksum InetChecksum if b != nil && len(b) > 0 { if copied, err = cksum.Write(b); err != nil { return } _ = i.Aligned() } else { i = New() return } i = &cksum return } /* NewFromBuf returns an [InetChecksum] from a specified [io.Reader]. buf may be nil. If it isn't, NewFromBuf will call [io.Copy] on buf. Note that this may exhaust your passed buf or advance its current seek position/offset, depending on its type. */ func NewFromBuf(buf io.Reader) (i *InetChecksum, copied int64, err error) { var cksum InetChecksum _ = i.Aligned() if buf != nil { if copied, err = io.Copy(&cksum, buf); err != nil { return } } i = &cksum return }