1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use glib::prelude::*;

glib::wrapper! {
    /// Interface for miscellaneous [`Session`][crate::Session] features.
    ///
    /// #SoupSessionFeature is the interface used by classes that extend
    /// the functionality of a [`Session`][crate::Session]. Some features like HTTP
    /// authentication handling are implemented internally via
    /// `SoupSessionFeature`s. Other features can be added to the session
    /// by the application. (Eg, [`Logger`][crate::Logger], [`CookieJar`][crate::CookieJar].)
    ///
    /// See [`SessionExt::add_feature()`][crate::prelude::SessionExt::add_feature()], etc, to add a feature to a session.
    ///
    /// # Implements
    ///
    /// [`SessionFeatureExt`][trait@crate::prelude::SessionFeatureExt]
    #[doc(alias = "SoupSessionFeature")]
    pub struct SessionFeature(Interface<ffi::SoupSessionFeature, ffi::SoupSessionFeatureInterface>);

    match fn {
        type_ => || ffi::soup_session_feature_get_type(),
    }
}

impl SessionFeature {
    pub const NONE: Option<&'static SessionFeature> = None;
}

mod sealed {
    pub trait Sealed {}
    impl<T: super::IsA<super::SessionFeature>> Sealed for T {}
}

/// Trait containing all [`struct@SessionFeature`] methods.
///
/// # Implementors
///
/// [`AuthManager`][struct@crate::AuthManager], [`Cache`][struct@crate::Cache], [`ContentDecoder`][struct@crate::ContentDecoder], [`ContentSniffer`][struct@crate::ContentSniffer], [`CookieJarDB`][struct@crate::CookieJarDB], [`CookieJarText`][struct@crate::CookieJarText], [`CookieJar`][struct@crate::CookieJar], [`HSTSEnforcerDB`][struct@crate::HSTSEnforcerDB], [`HSTSEnforcer`][struct@crate::HSTSEnforcer], [`Logger`][struct@crate::Logger], [`SessionFeature`][struct@crate::SessionFeature], [`WebsocketExtensionManager`][struct@crate::WebsocketExtensionManager]
pub trait SessionFeatureExt: IsA<SessionFeature> + sealed::Sealed + 'static {}

impl<O: IsA<SessionFeature>> SessionFeatureExt for O {}