code: func (v *PixbufLoader) Write(data []byte) (int, error) {
  	// n is set to 0 on error, and set to len(data) otherwise.
  	// This is a tiny hacky to satisfy io.Writer and io.WriteCloser,
  	// which would allow access to all io and ioutil goodies,
  	// and play along nice with go environment.
  
  	if len(data) == 0 {
  		return 0, nil
  	}
  
  	var err *C.GError
  	c := C.gdk_pixbuf_loader_write(v.native(),
  		(*C.guchar)(unsafe.Pointer(&data[0])), C.gsize(len(data)),
  		&err)
  
  	if !gobool(c) {
  		defer C.g_error_free(err)
  		return 0, errors.New(C.GoString((*C.char)(err.message)))
  	}
  
  	return len(data), nil
  }
docs: // Write() is a wrapper around gdk_pixbuf_loader_write().  The
  // function signature differs from the C equivalent to satisify the
  // io.Writer interface.