// GENERATED — DO NOT EDIT

///|
/// [Upstream documentation](https://docs.gtk.org/gio/iface.TlsFileDatabase.html).
pub type TlsFileDatabase

///|
pub(open) trait ITlsFileDatabase {
  fn as_tls_file_database(Self) -> TlsFileDatabase
}

///|
pub impl ITlsFileDatabase for TlsFileDatabase with fn as_tls_file_database(self) {
  self
}

///|
#borrow(anchors, error)
extern "c" fn moonbit_g_tls_file_database_new(
  anchors : Bytes,
  error : Ref[@glib.Nullable[@glib.Error_]],
) -> TlsFileDatabase = "moonbit_g_tls_file_database_new"

///|
/// [Upstream documentation](https://docs.gtk.org/gio/type_func.TlsFileDatabase.new.html).
pub fn TlsFileDatabase::new(
  anchors : String,
) -> TlsFileDatabase raise @glib.Error_ {
  let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
  let result = moonbit_g_tls_file_database_new(
    @encoding/utf8.encode(anchors),
    error_,
  )
  match error_.val.to_option() {
    Some(e) => raise e
    None => result
  }
}

///|
pub fn TlsFileDatabase::as_tls_database(self : TlsFileDatabase) -> TlsDatabase = "%identity"

///|
pub impl ITlsDatabase for TlsFileDatabase with fn as_tls_database(self) {
  self.as_tls_database()
}