package dynparquet

import (
	
	
	
)

var ErrMalformedDynamicColumns = errors.New("malformed dynamic columns string")

func serializeDynamicColumns( map[string][]string) string {
	 := make([]string, 0, len())
	var  int
	for ,  := range  {
		 = append(, )
		 += len() +
			2 // separators
		for  := range  {
			 += len([]) + 1
		}
	}
	sort.Strings()
	var  strings.Builder
	.Grow()
	for ,  := range  {
		if  != 0 {
			.WriteByte(';')
		}
		.WriteString()
		.WriteByte(':')
		for  := range [] {
			if  != 0 {
				.WriteByte(',')
			}
			.WriteString([][])
		}
	}
	return .String()
}

func deserializeDynamicColumns( string) (map[string][]string, error) {
	 := map[string][]string{}

	// handle case where the schema has no dynamic columnns
	if len() == 0 {
		return , nil
	}
	var  string
	for {
		if  == "" {
			return , nil
		}
		, , _ = strings.Cut(, ";")
		, ,  := strings.Cut(, ":")
		if ! {
			return nil, ErrMalformedDynamicColumns
		}
		 := make([]string, 0, strings.Count(, ","))

		var  string
		for  != "" {
			, , _ = strings.Cut(, ",")
			 = append(, )
		}
		[] = 
	}
}