package httpsfv

import (
	
	
	
)

var ErrInvalidDateFormat = errors.New("invalid date format")

// marshalDate serializes as defined in
// https://httpwg.org/specs/rfc9651.html#ser-date.
func marshalDate( io.StringWriter,  time.Time) error {
	,  := .WriteString("@")
	if  != nil {
		return 
	}

	return marshalInteger(, .Unix())
}

// parseDate parses as defined in
// https://httpwg.org/specs/rfc9651.html#parse-date.
func parseDate( *scanner) (time.Time, error) {
	if .eof() || .data[.off] != '@' {
		return time.Time{}, &UnmarshalError{.off, ErrInvalidDateFormat}
	}
	.off++

	,  := parseNumber()
	if  != nil {
		return time.Time{}, &UnmarshalError{.off, ErrInvalidDateFormat}
	}

	,  := .(int64)
	if ! {
		return time.Time{}, &UnmarshalError{.off, ErrInvalidDateFormat}
	}

	return time.Unix(, 0), nil
}