func (c *CompositeMetadataScanner) Metadata() (mimeType string, metadata []byte, err error) {
	l, mimeType, metadata, err := c.decodeCompositeMetadataOnce(c.raw[c.offset:])
	if err != nil {
		return
	}
	c.offset += l
	return
}
Metadata returns current metadata bytes.
package extension
import (
	"bytes"
	"fmt"
	"github.com/rsocket/rsocket-go/internal/bytesconv"
	"math"
	"github.com/rsocket/rsocket-go/internal/u24"
)
type CompositeMetadata []byte
type CompositeMetadataScanner struct {
	offset int
	raw    []byte
}
type CompositeMetadataBuilder struct {
	k []interface{}
	v [][]byte
}
func (c CompositeMetadata) Scanner() *CompositeMetadataScanner {
	return &CompositeMetadataScanner{
		offset: 0,
		raw:    c,
	}
}
func (c *CompositeMetadataScanner) Scan() bool {
	return c.offset < len(c.raw)
}
func (c *CompositeMetadataScanner) MetadataUTF8() (mimeType string, metadata string, err error) {
	mimeType, metadataRaw, err := c.Metadata()
	if err != nil {
		return
	}
	metadata = string(metadataRaw)
	return
}