MCPcopy
hub / github.com/nats-io/nats.go / Metadata

Method Metadata

js.go:3709–3730  ·  view source on GitHub ↗

Metadata retrieves the metadata from a JetStream message. This method will return an error for non-JetStream Msgs.

()

Source from the content-addressed store, hash-verified

3707// Metadata retrieves the metadata from a JetStream message. This method will
3708// return an error for non-JetStream Msgs.
3709func (m *Msg) Metadata() (*MsgMetadata, error) {
3710 if err := m.checkReply(); err != nil {
3711 return nil, err
3712 }
3713
3714 tokens, err := parser.GetMetadataFields(m.Reply)
3715 if err != nil {
3716 return nil, err
3717 }
3718
3719 meta := &MsgMetadata{
3720 Domain: tokens[parser.AckDomainTokenPos],
3721 NumDelivered: parser.ParseNum(tokens[parser.AckNumDeliveredTokenPos]),
3722 NumPending: parser.ParseNum(tokens[parser.AckNumPendingTokenPos]),
3723 Timestamp: time.Unix(0, int64(parser.ParseNum(tokens[parser.AckTimestampSeqTokenPos]))),
3724 Stream: tokens[parser.AckStreamTokenPos],
3725 Consumer: tokens[parser.AckConsumerTokenPos],
3726 }
3727 meta.Sequence.Stream = parser.ParseNum(tokens[parser.AckStreamSeqTokenPos])
3728 meta.Sequence.Consumer = parser.ParseNum(tokens[parser.AckConsumerSeqTokenPos])
3729 return meta, nil
3730}
3731
3732// AckPolicy determines how the consumer should acknowledge delivered messages.
3733type AckPolicy int

Callers 2

TestJetStreamAckTokensFunction · 0.95

Calls 3

checkReplyMethod · 0.95
GetMetadataFieldsFunction · 0.92
ParseNumFunction · 0.92

Tested by 2

TestJetStreamAckTokensFunction · 0.76