github.com/urso/go-structform@v0.0.2/gotype/unfold_lookup.go (about)

     1  package gotype
     2  
     3  /*
     4  func lookupReflUnfolder(t reflect.Type) (reflUnfolder, error) {
     5  	// we always expect a pointer to a value
     6  	bt := t.Elem()
     7  
     8  	switch bt.Kind() {
     9  	case reflect.Array:
    10  		switch bt.Elem().Kind() {
    11  		case reflect.Int:
    12  			return liftGoUnfolder(newUnfolderArrInt()), nil
    13  		}
    14  
    15  	case reflect.Slice:
    16  
    17  	case reflect.Map:
    18  		if bt.Key().Kind() != reflect.String {
    19  			return nil, errMapRequiresStringKey
    20  		}
    21  
    22  		switch bt.Elem().Kind() {
    23  		case reflect.Interface:
    24  			return liftGoUnfolder(newUnfolderMapIfc()), nil
    25  		}
    26  
    27  	case reflect.Struct:
    28  
    29  	}
    30  
    31  	return nil, errTODO()
    32  }
    33  */