func ExampleFields() { s := MyStruct{ FirstField: "first value", SecondField: 2, ThirdField: "third value", } var fields []string // Fields will list every structure exportable fields. // Here, it's content would be equal to: // []string{"FirstField", "SecondField", "ThirdField"} fields, _ = reflections.Fields(s) fmt.Println(fields) }
func PrintInspectionReport(cont *docker.Container, field string) error { switch field { case "line": parts, err := printLine(cont) if err != nil { return err } logger.Printf("%s\n", strings.Join(parts, " ")) case "all": for _, obj := range []interface{}{cont, cont.Config, cont.HostConfig, cont.NetworkSettings} { t, err := reflections.Fields(obj) if err != nil { return fmt.Errorf("The PrintInspectionReport marmot had an error getting the fields using reflection.Fields\n%s", err) } for _, f := range t { printReport(obj, f) } } default: return printField(cont, field) } return nil }