func TraverseListValue(lv *structpb.Value, fn func(*structpb.Value) error) error {
	list, ok := lv.Kind.(*structpb.Value_ListValue)
	if !ok {
		return errors.New("lv is not a listvalue")
	}

	if list.ListValue == nil {
		return nil
	}

	for _, v := range list.ListValue.Values {
		if err := fn(v); err != nil {
			return err
		}
	}

	return nil
}
// TraverseListValue traverses a ListValue calling fn for each value within. If fn
// returns an error, the traverse is stopped and the errors is returned
TraverseListValue traverses a ListValue calling fn for each value within. If fn
returns an error, the traverse is stopped and the errors is returned
// TraverseListValue traverses a ListValue calling fn for each value within . If fn // returns an error the traverse is stopped and the errors is returned
func TraverseListValue(lv *structpb.Value, fn func(*structpb.Value) error) error {
	list, ok := lv.Kind.(*structpb.Value_ListValue)
	if !ok {
		return errors.New("lv is not a listvalue")
	}
	if list.ListValue == nil {
		return nil
	}
	for _, v := range list.ListValue.Values {
		if err := fn(v); err != nil {
			return err
		}
	}
	return nil
}
func TraverseListValue ( lv * structpb . Value , fn func ( * structpb . Value ) error ) error { list , ok := lv . Kind . ( * structpb . Value_ListValue ) if ! ok { return errors . New ( " " ) } if list . ListValue == nil { return nil } for _ , v := range list . ListValue . Values { if err := fn ( v ) ; err != nil { return err } } return nil }
TraverseListValue traverses a ListValue calling fn for each value within.
TraverseListValue traverses a ListValue calling fn for each value within .