github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/message/generic.go (about)

     1  package message
     2  
     3  import (
     4  	"github.com/mongodb/grip/level"
     5  )
     6  
     7  type genericMessage struct {
     8  	Base
     9  	raw         Generic
    10  	description string
    11  }
    12  
    13  type Generic interface {
    14  	Send() error
    15  	Valid() bool
    16  }
    17  
    18  // NewGenericMessage returns a composer for Generic messages
    19  func NewGenericMessage(p level.Priority, g Generic, description string) Composer {
    20  	m := &genericMessage{}
    21  	if err := m.SetPriority(p); err != nil {
    22  		_ = m.SetPriority(level.Notice)
    23  	}
    24  
    25  	m.raw = g
    26  	m.description = description
    27  	return m
    28  }
    29  
    30  func (m *genericMessage) Loggable() bool {
    31  	return m.raw.Valid()
    32  }
    33  
    34  func (m *genericMessage) String() string {
    35  	return m.description
    36  }
    37  
    38  func (m *genericMessage) Raw() interface{} {
    39  	return m.raw
    40  }