serde.go 652 B

1234567891011121314151617181920212223242526272829303132333435
  1. package sarama
  2. type serde struct {
  3. config *Config
  4. serializer *serializer
  5. deserializer *deserializer
  6. }
  7. type Serde interface {
  8. Serializer() Serializer
  9. Deserializer() Deserializer
  10. }
  11. func NewSerde(config *Config) (Serde, error) {
  12. serde := &serde{
  13. config: config,
  14. }
  15. serializer, err := NewSerializer(config)
  16. if err == nil {
  17. serde.serializer = serializer
  18. }
  19. deserializer, err := NewDeserializer(config)
  20. if err == nil {
  21. serde.deserializer = deserializer
  22. }
  23. return serde, err
  24. }
  25. func (serde *serde) Serializer() Serializer {
  26. return serde.serializer
  27. }
  28. func (serde *serde) Deserializer() Deserializer {
  29. return serde.deserializer
  30. }