code: func Fields(s interface{}) ([]reflect.StructField, error) {
  	sv, err := structValue(s)
  	if err != nil {
  		return nil, err
  	}
  
  	return modelFields(sv), nil
  }
docs: // Fields method returns the exported struct fields from the given `struct`.
  // 		Example:
  //
  // 		src := SampleStruct { /* source struct field values go here */ }
  //
  // 		fields, _ := model.Fields(src)
  // 		for _, f := range fields {
  // 			tag := newTag(f.Tag.Get("model"))
  // 			fmt.Println("Field Name:", f.Name, "Tag Name:", tag.Name, "Tag Options:", tag.Options)
  // 		}
  //