package signature

type stableMarshaler interface {
	StableMarshal([]byte) []byte
	StableSize() int
}

type StableMarshalerWrapper struct {
	SM stableMarshaler
}

func (s StableMarshalerWrapper) ReadSignedData(buf []byte) ([]byte, error) {
	if s.SM != nil {
		return s.SM.StableMarshal(buf), nil
	}

	return nil, nil
}

func (s StableMarshalerWrapper) SignedDataSize() int {
	if s.SM != nil {
		return s.SM.StableSize()
	}

	return 0
}