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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
// 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 crate::{HSTSEnforcer, SessionFeature};
use glib::{prelude::*, translate::*};
glib::wrapper! {
/// Persistent HTTP Strict Transport Security enforcer.
///
/// #SoupHSTSEnforcerDB is a [`HSTSEnforcer`][crate::HSTSEnforcer] that uses a SQLite
/// database as a backend for persistency.
///
/// ## Properties
///
///
/// #### `filename`
/// The filename of the SQLite database where HSTS policies are stored.
///
/// Readable | Writeable | Construct Only
///
/// # Implements
///
/// [`HSTSEnforcerExt`][trait@crate::prelude::HSTSEnforcerExt], [`trait@glib::ObjectExt`], [`SessionFeatureExt`][trait@crate::prelude::SessionFeatureExt]
#[doc(alias = "SoupHSTSEnforcerDB")]
pub struct HSTSEnforcerDB(Object<ffi::SoupHSTSEnforcerDB, ffi::SoupHSTSEnforcerDBClass>) @extends HSTSEnforcer, @implements SessionFeature;
match fn {
type_ => || ffi::soup_hsts_enforcer_db_get_type(),
}
}
impl HSTSEnforcerDB {
/// Creates a #SoupHSTSEnforcerDB.
///
/// @filename will be read in during the initialization of a
/// #SoupHSTSEnforcerDB, in order to create an initial set of HSTS
/// policies. If the file doesn't exist, a new database will be created
/// and initialized. Changes to the policies during the lifetime of a
/// #SoupHSTSEnforcerDB will be written to @filename when
/// [`changed`][struct@crate::HSTSEnforcer#changed] is emitted.
/// ## `filename`
/// the filename of the database to read/write from.
///
/// # Returns
///
/// the new #SoupHSTSEnforcer
#[doc(alias = "soup_hsts_enforcer_db_new")]
pub fn new(filename: &str) -> HSTSEnforcerDB {
assert_initialized_main_thread!();
unsafe {
HSTSEnforcer::from_glib_full(ffi::soup_hsts_enforcer_db_new(filename.to_glib_none().0))
.unsafe_cast()
}
}
// rustdoc-stripper-ignore-next
/// Creates a new builder-pattern struct instance to construct [`HSTSEnforcerDB`] objects.
///
/// This method returns an instance of [`HSTSEnforcerDBBuilder`](crate::builders::HSTSEnforcerDBBuilder) which can be used to create [`HSTSEnforcerDB`] objects.
pub fn builder() -> HSTSEnforcerDBBuilder {
HSTSEnforcerDBBuilder::new()
}
/// The filename of the SQLite database where HSTS policies are stored.
pub fn filename(&self) -> Option<glib::GString> {
ObjectExt::property(self, "filename")
}
}
impl Default for HSTSEnforcerDB {
fn default() -> Self {
glib::object::Object::new::<Self>()
}
}
// rustdoc-stripper-ignore-next
/// A [builder-pattern] type to construct [`HSTSEnforcerDB`] objects.
///
/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
#[must_use = "The builder must be built to be used"]
pub struct HSTSEnforcerDBBuilder {
builder: glib::object::ObjectBuilder<'static, HSTSEnforcerDB>,
}
impl HSTSEnforcerDBBuilder {
fn new() -> Self {
Self {
builder: glib::object::Object::builder(),
}
}
/// The filename of the SQLite database where HSTS policies are stored.
pub fn filename(self, filename: impl Into<glib::GString>) -> Self {
Self {
builder: self.builder.property("filename", filename.into()),
}
}
// rustdoc-stripper-ignore-next
/// Build the [`HSTSEnforcerDB`].
#[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
pub fn build(self) -> HSTSEnforcerDB {
self.builder.build()
}
}