Struct soup::Message

source ·
pub struct Message { /* private fields */ }
Expand description

Represents an HTTP message being sent or received.

A #SoupMessage represents an HTTP message that is being sent or received.

You would create a #SoupMessage with new() or from_uri(), set up its fields appropriately, and send it.

status-code will normally be a Status value, eg, Status::Ok, though of course it might actually be an unknown status code. reason-phrase is the actual text returned from the server, which may or may not correspond to the “standard” description of @status_code. At any rate, it is almost certainly not localized, and not very descriptive even if it is in the user’s language; you should not use reason-phrase in user-visible messages. Rather, you should look at status-code, and determine an end-user-appropriate message based on that and on what you were trying to do.

Note that libsoup’s terminology here does not quite match the HTTP specification: in RFC 2616, an “HTTP-message” is either a Request, or a Response. In libsoup, a #SoupMessage combines both the request and the response.

§Properties

§first-party

The glib::Uri loaded in the application when the message was queued.

Readable | Writeable

§flags

Various message options.

Readable | Writeable

§http-version

The HTTP protocol version to use.

Readable

§is-options-ping

Whether the message is an OPTIONS ping.

The #SoupMessage is intended to be used to send OPTIONS * to a server. When set to true, the path of uri will be ignored and method set to SOUP_METHOD_OPTIONS.

Readable | Writeable

§is-top-level-navigation

Set when the message is navigating between top level domains.

Readable | Writeable

§method

The message’s HTTP method.

Readable | Writeable

§priority

Sets the priority of the #SoupMessage. See Message::set_priority() for further details.

Readable | Writeable

§reason-phrase

The HTTP response reason phrase.

Readable

§remote-address

The remote gio::SocketAddress of the connection associated with the message.

Readable

§request-headers

The HTTP request headers.

Readable

§response-headers

The HTTP response headers.

Readable

§site-for-cookies

Site used to compare cookies against. Used for SameSite cookie support.

Readable | Writeable

§status-code

The HTTP response status code.

Readable

§tls-ciphersuite-name

The Name of TLS ciphersuite negotiated for this message connection.

Readable

§tls-peer-certificate

The peer’s gio::TlsCertificate associated with the message.

Readable

§tls-peer-certificate-errors

The verification errors on tls-peer-certificate.

Readable

§tls-protocol-version

The TLS protocol version negotiated for the message connection.

Readable

§uri

The message’s Request-URI.

Readable | Writeable

§Signals

§accept-certificate

Emitted during the @msg’s connection TLS handshake after an unacceptable TLS certificate has been received.

You can return true to accept @tls_certificate despite @tls_errors.

§authenticate

Emitted when the message requires authentication.

If credentials are available call AuthExt::authenticate() on @auth. If these credentials fail, the signal will be emitted again, with @retrying set to true, which will continue until you return without calling AuthExt::authenticate() on @auth.

Note that this may be emitted before @msg’s body has been fully read.

You can authenticate @auth asynchronously by calling GObject::Object::ref() on @auth and returning true. The operation will complete once either AuthExt::authenticate() or AuthExt::cancel() are called.

§content-sniffed

This signal is emitted after got-headers.

If content sniffing is disabled, or no content sniffing will be performed, due to the sniffer deciding to trust the Content-Type sent by the server, this signal is emitted immediately after got-headers, and @type_ is None.

§finished

Emitted when all HTTP processing is finished for a message.

(After got_body).

§got-body

Emitted after receiving the complete message response body.

§got-body-data

Emitted after reading a portion of the message body from the network.

§got-headers

Emitted after receiving the Status-Line and response headers.

See also Message::add_header_handler() and Message::add_status_code_handler(), which can be used to connect to a subset of emissions of this signal.

If you cancel or requeue @msg while processing this signal, then the current HTTP I/O will be stopped after this signal emission finished, and @msg’s connection will be closed. (If you need to requeue a message–eg, after handling authentication or redirection–it is usually better to requeue it from a got-body handler rather than a got_headers handler, so that the existing HTTP connection can be reused.)

§got-informational

Emitted after receiving a 1xx (Informational) response for a (client-side) message.

The response_headers will be filled in with the headers associated with the informational response; however, those header values will be erased after this signal is done.

If you cancel or requeue @msg while processing this signal, then the current HTTP I/O will be stopped after this signal emission finished, and @msg’s connection will be closed.

§hsts-enforced

Emitted when HSTSEnforcer has upgraded the protocol for @msg to HTTPS as a result of matching its domain with a HSTS policy.

§network-event

Emitted to indicate that some network-related event related to @msg has occurred.

This essentially proxies the [event][struct@crate::Gio::SocketClient#event] signal, but only for events that occur while @msg “owns” the connection; if @msg is sent on an existing persistent connection, then this signal will not be emitted. (If you want to force the message to be sent on a new connection, set the MessageFlags::NEW_CONNECTION flag on it.)

See [event][struct@crate::Gio::SocketClient#event] for more information on what the different values of @event correspond to, and what @connection will be in each case.

§request-certificate

Emitted during the @msg’s connection TLS handshake when @tls_connection requests a certificate from the client.

You can set the client certificate by calling Message::set_tls_client_certificate() and returning true. It’s possible to handle the request asynchornously by returning true and call Message::set_tls_client_certificate() later once the certificate is available. Note that this signal is not emitted if tls-interaction was set, or if Message::set_tls_client_certificate() was called before the connection TLS handshake started.

§request-certificate-password

Emitted during the @msg’s connection TLS handshake when @tls_connection requests a certificate password from the client.

You can set the certificate password on @password, then call Message::tls_client_certificate_password_request_complete() and return true to handle the signal synchronously. It’s possible to handle the request asynchornously by calling GObject::Object::ref() on @password, then returning true and call Message::tls_client_certificate_password_request_complete() later after setting the password on @password. Note that this signal is not emitted if tls-interaction was set.

§restarted

Emitted when a request that was already sent once is now being sent again.

e.g. because the first attempt received a redirection response, or because we needed to use authentication.

§starting

Emitted just before a message is sent.

§wrote-body

Emitted immediately after writing the complete body for a message.

§wrote-body-data

Emitted immediately after writing a portion of the message body to the network.

§wrote-headers

Emitted immediately after writing the request headers for a message.

§Implements

[trait@glib::ObjectExt]

Implementations§

source§

impl Message

source

pub fn new(method: &str, uri_string: &str) -> Result<Message, BoolError>

Creates a new empty #SoupMessage, which will connect to @uri.

§method

the HTTP method for the created request

§uri_string

the destination endpoint (as a string)

§Returns

the new #SoupMessage (or None if @uri could not be parsed).

source

pub fn from_encoded_form( method: &str, uri_string: &str, encoded_form: GString ) -> Result<Message, BoolError>

Creates a new #SoupMessage and sets it up to send the given @encoded_form to @uri via @method. If @method is “GET”, it will include the form data into @uri’s query field, and if @method is “POST” or “PUT”, it will be set as request body.

This function takes the ownership of @encoded_form, that will be released with free() when no longer in use. See also form_encode(), form_encode_hash() and form_encode_datalist().

§method

the HTTP method for the created request (GET, POST or PUT)

§uri_string

the destination endpoint (as a string)

§encoded_form

a encoded form

§Returns

the new #SoupMessage, or None if @uri_string could not be parsed or @method is not “GET, “POST” or “PUT”

source

pub fn from_multipart( uri_string: &str, multipart: &mut Multipart ) -> Result<Message, BoolError>

Creates a new #SoupMessage and sets it up to send @multipart to @uri_string via POST.

§uri_string

the destination endpoint

§multipart

a #SoupMultipart

§Returns

the new #SoupMessage, or None if @uri_string could not be parsed

source

pub fn from_uri(method: &str, uri: &Uri) -> Message

Creates a new empty #SoupMessage, which will connect to @uri.

§method

the HTTP method for the created request

§uri

the destination endpoint

§Returns

the new #SoupMessage

source

pub fn new_options_ping(base_uri: &Uri) -> Message

Creates a new #SoupMessage to send OPTIONS * to a server. The path of @base_uri will be ignored.

§base_uri

the destination endpoint

§Returns

the new #SoupMessage

source

pub fn builder() -> MessageBuilder

Creates a new builder-pattern struct instance to construct Message objects.

This method returns an instance of MessageBuilder which can be used to create Message objects.

source

pub fn add_flags(&self, flags: MessageFlags)

Adds @flags to the set of @self’s flags.

§flags

a set of #SoupMessageFlags values

source

pub fn disable_feature(&self, feature_type: Type)

Disables the actions of SessionFeatures with the given @feature_type (or a subclass of that type) on @self.

@self is processed as though the feature(s) hadn’t been added to the session. Eg, passing #SOUP_TYPE_CONTENT_SNIFFER for @feature_type will disable Content-Type sniffing on the message.

You must call this before queueing @self on a session; calling it on a message that has already been queued is undefined. In particular, you cannot call this on a message that is being requeued after a redirect or authentication.

§feature_type

the #GType of a #SoupSessionFeature

source

pub fn connection_id(&self) -> u64

Returns the unique idenfier for the last connection used.

This may be 0 if it was a cached resource or it has not gotten a connection yet.

§Returns

An id or 0 if no connection.

source

pub fn first_party(&self) -> Option<Uri>

Gets @self’s first-party glib::Uri.

§Returns

the @self’s first party #GUri

source

pub fn flags(&self) -> MessageFlags

Gets the flags on @self.

§Returns

the flags

source

pub fn is_force_http1(&self) -> bool

Returns whether HTTP/1 version is currently demanded for the @self send.

§Returns

true, when HTTP/1 is demanded, false otherwise.

source

pub fn http_version(&self) -> HTTPVersion

Gets the HTTP version of @self.

This is the minimum of the version from the request and the version from the response.

§Returns

the HTTP version

source

pub fn is_options_ping(&self) -> bool

Gets whether @self is intended to be used to send OPTIONS * to a server.

§Returns

true if the message is options ping, or false otherwise

source

pub fn is_top_level_navigation(&self) -> bool

Returns if this message is set as a top level navigation.

Used for same-site policy checks.

§Returns

Whether the current request is a top-level navitation

source

pub fn method(&self) -> Option<GString>

Returns the method of this message.

§Returns

A method such as SOUP_METHOD_GET

source

pub fn metrics(&self) -> Option<MessageMetrics>

Get the MessageMetrics of @self.

If the flag MessageFlags::COLLECT_METRICS is not enabled for @self this will return None.

§Returns

a #SoupMessageMetrics

source

pub fn priority(&self) -> MessagePriority

Retrieves the MessagePriority.

If not set this value defaults to #SOUP_MESSAGE_PRIORITY_NORMAL.

§Returns

the priority of the message.

source

pub fn reason_phrase(&self) -> Option<GString>

Returns the reason phrase for the status of this message.

§Returns

the phrase

source

pub fn remote_address(&self) -> Option<SocketAddress>

Get the remote gio::SocketAddress of the connection associated with the message.

The returned address can be None if the connection hasn’t been established yet, or the resource was loaded from the disk cache. In case of proxy connections, the remote address returned is a Gio::ProxyAddress. If remote-connectable is set the returned address id for the connection to the session’s remote connectable.

§Returns

a #GSocketAddress or None if the connection hasn’t been established

source

pub fn request_headers(&self) -> Option<MessageHeaders>

Returns the headers sent with the request.

§Returns

The #SoupMessageHeaders

source

pub fn response_headers(&self) -> Option<MessageHeaders>

Returns the headers recieved with the response.

§Returns

The #SoupMessageHeaders

source

pub fn status(&self) -> Status

Returns the set status of this message.

§Returns

The #SoupStatus

source

pub fn tls_ciphersuite_name(&self) -> Option<GString>

Gets the name of the TLS ciphersuite negotiated for @self’s connection.

§Returns

the name of the TLS ciphersuite, or None if @self’s connection is not SSL.

source

pub fn tls_peer_certificate(&self) -> Option<TlsCertificate>

Gets the peer’s gio::TlsCertificate associated with @self’s connection.

Note that this is not set yet during the emission of accept-certificate signal.

§Returns

@self’s TLS peer certificate, or None if @self’s connection is not SSL.

source

pub fn tls_peer_certificate_errors(&self) -> TlsCertificateFlags

Gets the errors associated with validating @self’s TLS peer certificate. Note that this is not set yet during the emission of accept-certificate signal.

§Returns

a #GTlsCertificateFlags with @self’s TLS peer certificate errors.

source

pub fn tls_protocol_version(&self) -> TlsProtocolVersion

Gets the TLS protocol version negotiated for @self’s connection.

If the message connection is not SSL, gio::TlsProtocolVersion::Unknown is returned.

§Returns

a #GTlsProtocolVersion

source

pub fn uri(&self) -> Option<Uri>

Gets @self’s URI.

§Returns

the URI @self is targeted for.

source

pub fn is_feature_disabled(&self, feature_type: Type) -> bool

Get whether SessionFeatures of the given @feature_type (or a subclass of that type) are disabled on @self.

See disable_feature().

§feature_type

the #GType of a #SoupSessionFeature

§Returns

true if feature is disabled, or false otherwise.

source

pub fn is_keepalive(&self) -> bool

Determines whether or not @self’s connection can be kept alive for further requests after processing @self.

The result is based on the HTTP version, Connection header, etc.

§Returns

true or false.

source

pub fn query_flags(&self, flags: MessageFlags) -> bool

Queries if @flags are present in the set of @self’s flags.

§flags

a set of #SoupMessageFlags values

§Returns

true if @flags are enabled in @self

source

pub fn remove_flags(&self, flags: MessageFlags)

Removes @flags from the set of @self’s flags.

§flags

a set of #SoupMessageFlags values

source

pub fn set_first_party(&self, first_party: &Uri)

Sets @first_party as the main document #GUri for @self.

For details of when and how this is used refer to the documentation for CookieJarAcceptPolicy.

§first_party

the #GUri for the @self’s first party

source

pub fn set_flags(&self, flags: MessageFlags)

Sets the specified flags on @self.

§flags

a set of #SoupMessageFlags values

source

pub fn set_force_http1(&self, value: bool)

Sets whether HTTP/1 version should be used when sending this message. Some connections can still override it, if needed.

Note the value is unset after the message send is finished.

§value

value to set

source

pub fn set_is_options_ping(&self, is_options_ping: bool)

Set whether @self is intended to be used to send OPTIONS * to a server.

When set to true, the path of uri will be ignored and method set to SOUP_METHOD_OPTIONS.

§is_options_ping

the value to set

source

pub fn set_is_top_level_navigation(&self, is_top_level_navigation: bool)

Sets whether the current request is a top-level navitation.

See the same-site spec for more information.

§is_top_level_navigation

if true indicate the current request is a top-level navigation

source

pub fn set_method(&self, method: &str)

Set @self’s HTTP method to @method.

§method

the value to set

source

pub fn set_priority(&self, priority: MessagePriority)

Sets the priority of a message.

Note that this won’t have any effect unless used before the message is added to the session’s message processing queue.

The message will be placed just before any other previously added message with lower priority (messages with the same priority are processed on a FIFO basis).

Setting priorities does not currently work with synchronous messages because in the synchronous/blocking case, priority ends up being determined semi-randomly by thread scheduling.

§priority

the #SoupMessagePriority

source

pub fn set_request_body( &self, content_type: Option<&str>, stream: Option<&impl IsA<InputStream>>, content_length: isize )

Set the request body of a #SoupMessage.

If @content_type is None and @stream is not None the Content-Type header will not be changed if present. The request body needs to be set again in case @self is restarted (in case of redirection or authentication).

§content_type

MIME Content-Type of the body, or None if unknown

§stream

a #GInputStream to read the request body from

§content_length

the byte length of @stream or -1 if unknown

source

pub fn set_request_body_from_bytes( &self, content_type: Option<&str>, bytes: Option<&Bytes> )

Set the request body of a #SoupMessage from glib::Bytes.

If @content_type is None and @bytes is not None the Content-Type header will not be changed if present. The request body needs to be set again in case @self is restarted (in case of redirection or authentication).

§content_type

MIME Content-Type of the body, or None if unknown

§bytes

a #GBytes with the request body data

source

pub fn set_tls_client_certificate( &self, certificate: Option<&impl IsA<TlsCertificate>> )

Sets the @certificate to be used by @self’s connection when a client certificate is requested during the TLS handshake.

You can call this as a response to request-certificate signal, or before the connection is started. If @certificate is None the handshake will continue without providing a GTlsCertificate. Note that the gio::TlsCertificate set by this function will be ignored if tls-interaction is not None.

§certificate

the #GTlsCertificate to set, or None

source

pub fn set_uri(&self, uri: &Uri)

Sets @self’s URI to @uri.

If @self has already been sent and you want to re-send it with the new URI, you need to send it again.

§uri

the new #GUri

source

pub fn tls_client_certificate_password_request_complete(&self)

Completes a certificate password request.

You must call this as a response to request-certificate-password signal, to notify @self that the gio::TlsPassword has already been updated.

source

pub fn site_for_cookies(&self) -> Option<Uri>

Site used to compare cookies against. Used for SameSite cookie support.

source

pub fn set_site_for_cookies(&self, site_for_cookies: Option<&Uri>)

Site used to compare cookies against. Used for SameSite cookie support.

source

pub fn status_code(&self) -> u32

The HTTP response status code.

source

pub fn connect_accept_certificate<F: Fn(&Self, &TlsCertificate, TlsCertificateFlags) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

Emitted during the @msg’s connection TLS handshake after an unacceptable TLS certificate has been received.

You can return true to accept @tls_certificate despite @tls_errors.

§tls_peer_certificate

the peer’s #GTlsCertificate

§tls_peer_errors

the tls errors of @tls_certificate

§Returns

true to accept the TLS certificate and stop other handlers from being invoked, or false to propagate the event further.

source

pub fn connect_authenticate<F: Fn(&Self, &Auth, bool) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

Emitted when the message requires authentication.

If credentials are available call AuthExt::authenticate() on @auth. If these credentials fail, the signal will be emitted again, with @retrying set to true, which will continue until you return without calling AuthExt::authenticate() on @auth.

Note that this may be emitted before @msg’s body has been fully read.

You can authenticate @auth asynchronously by calling GObject::Object::ref() on @auth and returning true. The operation will complete once either AuthExt::authenticate() or AuthExt::cancel() are called.

§auth

the #SoupAuth to authenticate

§retrying

true if this is the second (or later) attempt

§Returns

true to stop other handlers from being invoked or false to propagate the event further.

source

pub fn connect_finished<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId

Emitted when all HTTP processing is finished for a message.

(After got_body).

source

pub fn connect_got_body<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId

Emitted after receiving the complete message response body.

source

pub fn connect_got_body_data<F: Fn(&Self, u32) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted after reading a portion of the message body from the network.

§chunk_size

the number of bytes read

source

pub fn connect_got_headers<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted after receiving the Status-Line and response headers.

See also Message::add_header_handler() and Message::add_status_code_handler(), which can be used to connect to a subset of emissions of this signal.

If you cancel or requeue @msg while processing this signal, then the current HTTP I/O will be stopped after this signal emission finished, and @msg’s connection will be closed. (If you need to requeue a message–eg, after handling authentication or redirection–it is usually better to requeue it from a got-body handler rather than a got_headers handler, so that the existing HTTP connection can be reused.)

source

pub fn connect_got_informational<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted after receiving a 1xx (Informational) response for a (client-side) message.

The response_headers will be filled in with the headers associated with the informational response; however, those header values will be erased after this signal is done.

If you cancel or requeue @msg while processing this signal, then the current HTTP I/O will be stopped after this signal emission finished, and @msg’s connection will be closed.

source

pub fn connect_hsts_enforced<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted when HSTSEnforcer has upgraded the protocol for @msg to HTTPS as a result of matching its domain with a HSTS policy.

source

pub fn connect_network_event<F: Fn(&Self, SocketClientEvent, &IOStream) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted to indicate that some network-related event related to @msg has occurred.

This essentially proxies the [event][struct@crate::Gio::SocketClient#event] signal, but only for events that occur while @msg “owns” the connection; if @msg is sent on an existing persistent connection, then this signal will not be emitted. (If you want to force the message to be sent on a new connection, set the MessageFlags::NEW_CONNECTION flag on it.)

See [event][struct@crate::Gio::SocketClient#event] for more information on what the different values of @event correspond to, and what @connection will be in each case.

§event

the network event

§connection

the current state of the network connection

source

pub fn connect_request_certificate<F: Fn(&Self, &TlsClientConnection) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

Emitted during the @msg’s connection TLS handshake when @tls_connection requests a certificate from the client.

You can set the client certificate by calling set_tls_client_certificate() and returning true. It’s possible to handle the request asynchornously by returning true and call set_tls_client_certificate() later once the certificate is available. Note that this signal is not emitted if tls-interaction was set, or if set_tls_client_certificate() was called before the connection TLS handshake started.

§tls_connection

the #GTlsClientConnection

§Returns

true to handle the request, or false to make the connection fail with G_TLS_ERROR_CERTIFICATE_REQUIRED.

source

pub fn connect_request_certificate_password<F: Fn(&Self, &TlsPassword) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

Emitted during the @msg’s connection TLS handshake when @tls_connection requests a certificate password from the client.

You can set the certificate password on @password, then call tls_client_certificate_password_request_complete() and return true to handle the signal synchronously. It’s possible to handle the request asynchornously by calling GObject::Object::ref() on @password, then returning true and call tls_client_certificate_password_request_complete() later after setting the password on @password. Note that this signal is not emitted if tls-interaction was set.

§tls_password

the #GTlsPassword

§Returns

true to handle the request, or false to make the connection fail with G_TLS_ERROR_CERTIFICATE_REQUIRED.

source

pub fn connect_restarted<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId

Emitted when a request that was already sent once is now being sent again.

e.g. because the first attempt received a redirection response, or because we needed to use authentication.

source

pub fn connect_starting<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId

Emitted just before a message is sent.

source

pub fn connect_wrote_body<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted immediately after writing the complete body for a message.

source

pub fn connect_wrote_body_data<F: Fn(&Self, u32) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted immediately after writing a portion of the message body to the network.

§chunk_size

the number of bytes written

source

pub fn connect_wrote_headers<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

Emitted immediately after writing the request headers for a message.

source

pub fn connect_first_party_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_flags_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_http_version_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_is_options_ping_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_is_top_level_navigation_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_method_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_priority_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_reason_phrase_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_remote_address_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_request_headers_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_response_headers_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_site_for_cookies_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_status_code_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_tls_ciphersuite_name_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_tls_peer_certificate_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_tls_peer_certificate_errors_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_tls_protocol_version_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

pub fn connect_uri_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

Trait Implementations§

source§

impl Clone for Message

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Message

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl HasParamSpec for Message

§

type ParamSpec = ParamSpecObject

§

type SetValue = Message

Preferred value to be used as setter for the associated ParamSpec.
§

type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, Message>

source§

fn param_spec_builder() -> Self::BuilderFn

source§

impl Hash for Message

source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Message

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl ParentClassIs for Message

source§

impl<OT: ObjectType> PartialEq<OT> for Message

source§

fn eq(&self, other: &OT) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<OT: ObjectType> PartialOrd<OT> for Message

source§

fn partial_cmp(&self, other: &OT) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl StaticType for Message

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl Eq for Message

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Cast for T
where T: ObjectType,

source§

fn upcast<T>(self) -> T
where T: ObjectType, Self: IsA<T>,

Upcasts an object to a superclass or interface T. Read more
source§

fn upcast_ref<T>(&self) -> &T
where T: ObjectType, Self: IsA<T>,

Upcasts an object to a reference of its superclass or interface T. Read more
source§

fn downcast<T>(self) -> Result<T, Self>
where T: ObjectType, Self: MayDowncastTo<T>,

Tries to downcast to a subclass or interface implementor T. Read more
source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: ObjectType, Self: MayDowncastTo<T>,

Tries to downcast to a reference of its subclass or interface implementor T. Read more
source§

fn dynamic_cast<T>(self) -> Result<T, Self>
where T: ObjectType,

Tries to cast to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while upcast will do many checks at compile-time already. downcast will perform the same checks at runtime as dynamic_cast, but will also ensure some amount of compile-time safety. Read more
source§

fn dynamic_cast_ref<T>(&self) -> Option<&T>
where T: ObjectType,

Tries to cast to reference to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while downcast and upcast will do many checks at compile-time already. Read more
source§

unsafe fn unsafe_cast<T>(self) -> T
where T: ObjectType,

Casts to T unconditionally. Read more
source§

unsafe fn unsafe_cast_ref<T>(&self) -> &T
where T: ObjectType,

Casts to &T unconditionally. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( _: *const GPtrArray, _: usize ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GPtrArray, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( ptr: *mut GPtrArray, num: usize ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GPtrArray) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GSList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GSList) -> Vec<T>

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoClosureReturnValue for T
where T: Into<Value>,

source§

impl<U> IsSubclassableExt for U

source§

impl<T> ObjectExt for T
where T: ObjectType,

source§

fn is<U>(&self) -> bool
where U: StaticType,

Returns true if the object is an instance of (can be cast to) T.
source§

fn type_(&self) -> Type

Returns the type of the object.
source§

fn object_class(&self) -> &Class<Object>

Returns the ObjectClass of the object. Read more
source§

fn class(&self) -> &Class<T>
where T: IsClass,

Returns the class of the object.
source§

fn class_of<U>(&self) -> Option<&Class<U>>
where U: IsClass,

Returns the class of the object in the given type T. Read more
source§

fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>
where U: IsInterface,

Returns the interface T of the object. Read more
source§

fn set_property(&self, property_name: &str, value: impl Into<Value>)

Sets the property property_name of the object to value value. Read more
source§

fn set_property_from_value(&self, property_name: &str, value: &Value)

Sets the property property_name of the object to value value. Read more
source§

fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])

Sets multiple properties of the object at once. Read more
source§

fn set_properties_from_value(&self, property_values: &[(&str, Value)])

Sets multiple properties of the object at once. Read more
source§

fn property<V>(&self, property_name: &str) -> V
where V: for<'b> FromValue<'b> + 'static,

Gets the property property_name of the object and cast it to the type V. Read more
source§

fn property_value(&self, property_name: &str) -> Value

Gets the property property_name of the object. Read more
source§

fn has_property(&self, property_name: &str, type_: Option<Type>) -> bool

Check if the object has a property property_name of the given type_. Read more
source§

fn property_type(&self, property_name: &str) -> Option<Type>

Get the type of the property property_name of this object. Read more
source§

fn find_property(&self, property_name: &str) -> Option<ParamSpec>

Get the ParamSpec of the property property_name of this object.
source§

fn list_properties(&self) -> PtrSlice<ParamSpec>

Return all ParamSpec of the properties of this object.
source§

fn freeze_notify(&self) -> PropertyNotificationFreezeGuard

Freeze all property notifications until the return guard object is dropped. Read more
source§

unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)
where QD: 'static,

Set arbitrary data on this object with the given key. Read more
source§

unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>
where QD: 'static,

Return previously set arbitrary data of this object with the given key. Read more
source§

unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>
where QD: 'static,

Retrieve previously set arbitrary data of this object with the given key. Read more
source§

unsafe fn set_data<QD>(&self, key: &str, value: QD)
where QD: 'static,

Set arbitrary data on this object with the given key. Read more
source§

unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>
where QD: 'static,

Return previously set arbitrary data of this object with the given key. Read more
source§

unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>
where QD: 'static,

Retrieve previously set arbitrary data of this object with the given key. Read more
source§

fn block_signal(&self, handler_id: &SignalHandlerId)

Block a given signal handler. Read more
source§

fn unblock_signal(&self, handler_id: &SignalHandlerId)

Unblock a given signal handler.
source§

fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)

Stop emission of the currently emitted signal.
source§

fn stop_signal_emission_by_name(&self, signal_name: &str)

Stop emission of the currently emitted signal by the (possibly detailed) signal name.
source§

fn connect<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,

Connect to the signal signal_name on this object. Read more
source§

fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,

Connect to the signal signal_id on this object. Read more
source§

fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + 'static,

Connect to the signal signal_name on this object. Read more
source§

fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + 'static,

Connect to the signal signal_id on this object. Read more
source§

unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value>,

Connect to the signal signal_name on this object. Read more
source§

unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value>,

Connect to the signal signal_id on this object. Read more
source§

fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure ) -> SignalHandlerId

Connect a closure to the signal signal_name on this object. Read more
source§

fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure ) -> SignalHandlerId

Connect a closure to the signal signal_id on this object. Read more
source§

fn watch_closure(&self, closure: &impl AsRef<Closure>)

Limits the lifetime of closure to the lifetime of the object. When the object’s reference count drops to zero, the closure will be invalidated. An invalidated closure will ignore any calls to invoke_with_values, or invoke when using Rust closures.
source§

fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> R

Emit signal by signal id. Read more
source§

fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>

Same as Self::emit but takes Value for the arguments.
source§

fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> R

Emit signal by its name. Read more
source§

fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value] ) -> Option<Value>

Emit signal by its name. Read more
source§

fn emit_by_name_with_details<R>( &self, signal_name: &str, details: Quark, args: &[&dyn ToValue] ) -> R

Emit signal by its name with details. Read more
source§

fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value] ) -> Option<Value>

Emit signal by its name with details. Read more
source§

fn emit_with_details<R>( &self, signal_id: SignalId, details: Quark, args: &[&dyn ToValue] ) -> R

Emit signal by signal id with details. Read more
source§

fn emit_with_details_and_values( &self, signal_id: SignalId, details: Quark, args: &[Value] ) -> Option<Value>

Emit signal by signal id with details. Read more
source§

fn disconnect(&self, handler_id: SignalHandlerId)

Disconnect a previously connected signal handler.
source§

fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
where F: Fn(&T, &ParamSpec) + Send + Sync + 'static,

Connect to the notify signal of the object. Read more
source§

fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
where F: Fn(&T, &ParamSpec) + 'static,

Connect to the notify signal of the object. Read more
source§

unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F ) -> SignalHandlerId
where F: Fn(&T, &ParamSpec),

Connect to the notify signal of the object. Read more
source§

fn notify(&self, property_name: &str)

Notify that the given property has changed its value. Read more
source§

fn notify_by_pspec(&self, pspec: &ParamSpec)

Notify that the given property has changed its value. Read more
source§

fn downgrade(&self) -> WeakRef<T>

Downgrade this object to a weak reference.
source§

fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + Send + 'static,

Add a callback to be notified when the Object is disposed.
source§

fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + 'static,

Add a callback to be notified when the Object is disposed. Read more
source§

fn bind_property<'f, 't, O, 'a>( &'a self, source_property: &'a str, target: &'a O, target_property: &'a str ) -> BindingBuilder<'a, 'f, 't>
where O: ObjectType,

Bind property source_property on this object to the target_property on the target object. Read more
source§

fn ref_count(&self) -> u32

Returns the strong reference count of this object.
source§

unsafe fn run_dispose(&self)

Runs the dispose mechanism of the object. Read more
source§

impl<T> Property for T
where T: HasParamSpec,

§

type Value = T

source§

impl<T> PropertyGet for T
where T: HasParamSpec,

§

type Value = T

source§

fn get<R, F>(&self, f: F) -> R
where F: Fn(&<T as PropertyGet>::Value) -> R,

source§

impl<T> StaticTypeExt for T
where T: StaticType,

source§

fn ensure_type()

Ensures that the type has been registered with the type system.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> TransparentType for T

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,

source§

impl<Super, Sub> MayDowncastTo<Sub> for Super
where Super: IsA<Super>, Sub: IsA<Super>,