// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/class.MultipartInputStream.html).
pub type MultipartInputStream
///|
pub(open) trait IMultipartInputStream {
fn as_multipart_input_stream(Self) -> MultipartInputStream
fn next_part(Self, &@gio.ICancellable?) -> @gio.InputStream? raise @glib.Error_ = _
fn next_part_async(
Self,
Int,
&@gio.ICancellable?,
(Result[@gio.InputStream?, @glib.Error_]) -> Unit,
) -> Unit = _
}
///|
pub impl IMultipartInputStream for MultipartInputStream with fn as_multipart_input_stream(
self,
) {
self
}
///|
#borrow(msg, base_stream)
extern "c" fn moonbit_soup_multipart_input_stream_new(
msg : Message,
base_stream : @gio.InputStream,
) -> MultipartInputStream = "moonbit_soup_multipart_input_stream_new"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/ctor.MultipartInputStream.new.html).
pub fn MultipartInputStream::new(
msg : &IMessage,
base_stream : &@gio.IInputStream,
) -> MultipartInputStream {
moonbit_soup_multipart_input_stream_new(
msg.as_message(),
base_stream.as_input_stream(),
)
}
///|
#borrow(self_, cancellable, error)
extern "c" fn moonbit_soup_multipart_input_stream_next_part(
self_ : MultipartInputStream,
cancellable : @glib.Nullable[@gio.Cancellable],
error : Ref[@glib.Nullable[@glib.Error_]],
) -> @glib.Nullable[@gio.InputStream] = "moonbit_soup_multipart_input_stream_next_part"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/method.MultipartInputStream.next_part.html).
pub fn MultipartInputStream::next_part(
self : MultipartInputStream,
cancellable : &@gio.ICancellable?,
) -> @gio.InputStream? raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let raw_result = moonbit_soup_multipart_input_stream_next_part(
self,
match cancellable {
Some(v) => @glib.Nullable::some(v.as_cancellable())
None => @glib.Nullable::null()
},
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => ()
}
let result = raw_result.to_option()
result
}
///|
#borrow(self_, cancellable)
extern "c" fn soup_multipart_input_stream_next_part_async(
self_ : MultipartInputStream,
io_priority : Int,
cancellable : @glib.Nullable[@gio.Cancellable],
function : FuncRef[
(
@glib.Nullable[@gio.InputStream],
@glib.Nullable[@glib.Error_],
(@glib.Nullable[@gio.InputStream], @glib.Nullable[@glib.Error_]) -> Unit,
) -> Unit,
],
closure : (@glib.Nullable[@gio.InputStream], @glib.Nullable[@glib.Error_]) -> Unit,
) = "moonbit_soup_multipart_input_stream_next_part_async"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/method.MultipartInputStream.next_part_async.html).
pub fn MultipartInputStream::next_part_async(
self : MultipartInputStream,
io_priority : Int,
cancellable : &@gio.ICancellable?,
callback : (Result[@gio.InputStream?, @glib.Error_]) -> Unit,
) -> Unit {
soup_multipart_input_stream_next_part_async(
self,
io_priority,
match cancellable {
Some(v) => @glib.Nullable::some(v.as_cancellable())
None => @glib.Nullable::null()
},
fn(result, error, f) { f(result, error) },
fn(result, error) {
match error.to_option() {
Some(e) => callback(Err(e))
None =>
match result.to_option() {
Some(v) => callback(Ok(Some(v)))
None => callback(Ok(None))
}
}
},
)
}
///|
#borrow(self_)
extern "c" fn moonbit_soup_multipart_input_stream_get_message(
self_ : MultipartInputStream,
) -> @glib.Nullable[Message] = "moonbit_soup_multipart_input_stream_get_message"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/property.MultipartInputStream.message.html).
pub fn MultipartInputStream::get_message(
self : MultipartInputStream,
) -> Message? {
moonbit_soup_multipart_input_stream_get_message(self).to_option()
}
///|
impl IMultipartInputStream with fn next_part(self, cancellable) -> @gio.InputStream? raise @glib.Error_ {
self.as_multipart_input_stream().next_part(cancellable)
}
///|
impl IMultipartInputStream with fn next_part_async(
self,
io_priority,
cancellable,
callback,
) -> Unit {
self
.as_multipart_input_stream()
.next_part_async(io_priority, cancellable, callback)
}
///|
pub fn MultipartInputStream::as_gio_input_stream(
self : MultipartInputStream,
) -> @gio.InputStream = "%identity"
///|
pub impl @gio.IInputStream for MultipartInputStream with fn as_input_stream(
self,
) {
self.as_gio_input_stream()
}
///|
pub fn MultipartInputStream::as_gobject_object(
self : MultipartInputStream,
) -> @gobject.Object = "%identity"
///|
pub impl @gobject.IObject for MultipartInputStream with fn as_object(self) {
self.as_gobject_object()
}