func NewUnmarshaler(message []byte) *Unmarshaler {
	return &Unmarshaler{
		rawMessage:       message,
		segmentExtractor: NewSegmentExtractor(message),
		segments:         make(map[string][]segment.Segment),
	}
}
// NewUnmarshaler returns a new Unmarshaler for the message
NewUnmarshaler returns a new Unmarshaler for the message
// NewUnmarshaler returns a new Unmarshaler for the message
func NewUnmarshaler(message []byte) *Unmarshaler {
	return &Unmarshaler{
		rawMessage:       message,
		segmentExtractor: NewSegmentExtractor(message),
		segments:         make(map[string][]segment.Segment),
	}
}
func NewUnmarshaler ( message [ ] byte ) * Unmarshaler { return & Unmarshaler { rawMessage : message , segmentExtractor : NewSegmentExtractor ( message ) , segments : make ( map [ string ] [ ] segment . Segment ) , } }
NewUnmarshaler returns a new Unmarshaler for the message
NewUnmarshaler returns a new Unmarshaler for the message