do our best to render data graphically
(mimeType string, data interface{})
| 319 | |
| 320 | // do our best to render data graphically |
| 321 | func render(mimeType string, data interface{}) Data { |
| 322 | var kernel *Kernel // intentionally nil |
| 323 | if kernel.canAutoRender(data, nil) { |
| 324 | return kernel.autoRender(mimeType, data, nil) |
| 325 | } |
| 326 | var s string |
| 327 | var b []byte |
| 328 | var err error |
| 329 | switch data := data.(type) { |
| 330 | case string: |
| 331 | s = data |
| 332 | case []byte: |
| 333 | b = data |
| 334 | case io.Reader: |
| 335 | b, err = ioutil.ReadAll(data) |
| 336 | case io.WriterTo: |
| 337 | var buf bytes.Buffer |
| 338 | data.WriteTo(&buf) |
| 339 | b = buf.Bytes() |
| 340 | default: |
| 341 | panic(fmt.Errorf("unsupported type, cannot render: %T", data)) |
| 342 | } |
| 343 | return fillDefaults(Data{}, data, s, b, mimeType, err) |
| 344 | } |
| 345 | |
| 346 | func makeDataErr(err error) Data { |
| 347 | return Data{ |
no test coverage detected