code: func (d *Data) Write(p []byte) (n int, err error) {
  	if d.exifLoader == nil {
  		d.exifLoader = C.exif_loader_new()
  		runtime.SetFinalizer(d, (*Data).cleanup)
  	}
  
  	res := C.exif_loader_write(d.exifLoader, (*C.uchar)(unsafe.Pointer(&p[0])), C.uint(len(p)))
  
  	if res == 1 {
  		return len(p), nil
  	}
  	return len(p), ErrFoundExifInData
  }
docs: // Write writes bytes to the exif loader. Sends ErrFoundExifInData error when
  // enough bytes have been sent.