...

Source file src/go.formulabun.club/replays/staff/server/go/helpers.go

Documentation: go.formulabun.club/replays/staff/server/go

     1  /*
     2   * GoBun replay download
     3   *
     4   * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
     5   *
     6   * API version: 0.0.1
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package openapi
    11  
    12  import (
    13  	"io"
    14  	"reflect"
    15  )
    16  
    17  // Response return a ImplResponse struct filled
    18  func Response(code int, body io.Reader, filename string) ImplResponse {
    19  	return ImplResponse{
    20  		Code:     code,
    21  		Body:     body,
    22  		Filename: filename,
    23  	}
    24  }
    25  
    26  // IsZeroValue checks if the val is the zero-ed value.
    27  func IsZeroValue(val interface{}) bool {
    28  	return val == nil || reflect.DeepEqual(val, reflect.Zero(reflect.TypeOf(val)).Interface())
    29  }
    30  
    31  // AssertRecurseInterfaceRequired recursively checks each struct in a slice against the callback.
    32  // This method traverse nested slices in a preorder fashion.
    33  func AssertRecurseInterfaceRequired(obj interface{}, callback func(interface{}) error) error {
    34  	return AssertRecurseValueRequired(reflect.ValueOf(obj), callback)
    35  }
    36  
    37  // AssertRecurseValueRequired checks each struct in the nested slice against the callback.
    38  // This method traverse nested slices in a preorder fashion.
    39  func AssertRecurseValueRequired(value reflect.Value, callback func(interface{}) error) error {
    40  	switch value.Kind() {
    41  	// If it is a struct we check using callback
    42  	case reflect.Struct:
    43  		if err := callback(value.Interface()); err != nil {
    44  			return err
    45  		}
    46  
    47  	// If it is a slice we continue recursion
    48  	case reflect.Slice:
    49  		for i := 0; i < value.Len(); i += 1 {
    50  			if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil {
    51  				return err
    52  			}
    53  		}
    54  	}
    55  	return nil
    56  }
    57  

View as plain text