libappstream 0.4.0

Rust bindings for appstream
Documentation
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from
// from gir-files (https://github.com/gtk-rs/gir-files.git)
// DO NOT EDIT

use crate::{ffi, ArtifactKind, BundleKind, Checksum, ChecksumKind, SizeKind};
use glib::{prelude::*, translate::*};

glib::wrapper! {
    #[doc(alias = "AsArtifact")]
    pub struct Artifact(Object<ffi::AsArtifact, ffi::AsArtifactClass>);

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

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

    #[doc(alias = "as_artifact_new")]
    pub fn new() -> Artifact {
        assert_initialized_main_thread!();
        unsafe { from_glib_full(ffi::as_artifact_new()) }
    }
}

impl Default for Artifact {
    fn default() -> Self {
        Self::new()
    }
}

pub trait ArtifactExt: IsA<Artifact> + 'static {
    #[doc(alias = "as_artifact_add_checksum")]
    fn add_checksum(&self, cs: &impl IsA<Checksum>) {
        unsafe {
            ffi::as_artifact_add_checksum(
                self.as_ref().to_glib_none().0,
                cs.as_ref().to_glib_none().0,
            );
        }
    }

    #[doc(alias = "as_artifact_add_location")]
    fn add_location(&self, location: &str) {
        unsafe {
            ffi::as_artifact_add_location(
                self.as_ref().to_glib_none().0,
                location.to_glib_none().0,
            );
        }
    }

    #[doc(alias = "as_artifact_get_bundle_kind")]
    #[doc(alias = "get_bundle_kind")]
    fn bundle_kind(&self) -> BundleKind {
        unsafe {
            from_glib(ffi::as_artifact_get_bundle_kind(
                self.as_ref().to_glib_none().0,
            ))
        }
    }

    #[doc(alias = "as_artifact_get_checksum")]
    #[doc(alias = "get_checksum")]
    fn checksum(&self, kind: ChecksumKind) -> Option<Checksum> {
        unsafe {
            from_glib_none(ffi::as_artifact_get_checksum(
                self.as_ref().to_glib_none().0,
                kind.into_glib(),
            ))
        }
    }

    #[doc(alias = "as_artifact_get_checksums")]
    #[doc(alias = "get_checksums")]
    fn checksums(&self) -> Vec<Checksum> {
        unsafe {
            FromGlibPtrContainer::from_glib_none(ffi::as_artifact_get_checksums(
                self.as_ref().to_glib_none().0,
            ))
        }
    }

    #[doc(alias = "as_artifact_get_filename")]
    #[doc(alias = "get_filename")]
    fn filename(&self) -> Option<glib::GString> {
        unsafe {
            from_glib_none(ffi::as_artifact_get_filename(
                self.as_ref().to_glib_none().0,
            ))
        }
    }

    #[doc(alias = "as_artifact_get_kind")]
    #[doc(alias = "get_kind")]
    fn kind(&self) -> ArtifactKind {
        unsafe { from_glib(ffi::as_artifact_get_kind(self.as_ref().to_glib_none().0)) }
    }

    #[doc(alias = "as_artifact_get_locations")]
    #[doc(alias = "get_locations")]
    fn locations(&self) -> Vec<glib::GString> {
        unsafe {
            FromGlibPtrContainer::from_glib_none(ffi::as_artifact_get_locations(
                self.as_ref().to_glib_none().0,
            ))
        }
    }

    #[doc(alias = "as_artifact_get_platform")]
    #[doc(alias = "get_platform")]
    fn platform(&self) -> Option<glib::GString> {
        unsafe {
            from_glib_none(ffi::as_artifact_get_platform(
                self.as_ref().to_glib_none().0,
            ))
        }
    }

    #[doc(alias = "as_artifact_get_size")]
    #[doc(alias = "get_size")]
    fn size(&self, kind: SizeKind) -> u64 {
        unsafe { ffi::as_artifact_get_size(self.as_ref().to_glib_none().0, kind.into_glib()) }
    }

    #[doc(alias = "as_artifact_set_bundle_kind")]
    fn set_bundle_kind(&self, kind: BundleKind) {
        unsafe {
            ffi::as_artifact_set_bundle_kind(self.as_ref().to_glib_none().0, kind.into_glib());
        }
    }

    #[doc(alias = "as_artifact_set_filename")]
    fn set_filename(&self, filename: &str) {
        unsafe {
            ffi::as_artifact_set_filename(
                self.as_ref().to_glib_none().0,
                filename.to_glib_none().0,
            );
        }
    }

    #[doc(alias = "as_artifact_set_kind")]
    fn set_kind(&self, kind: ArtifactKind) {
        unsafe {
            ffi::as_artifact_set_kind(self.as_ref().to_glib_none().0, kind.into_glib());
        }
    }

    #[doc(alias = "as_artifact_set_platform")]
    fn set_platform(&self, platform: &str) {
        unsafe {
            ffi::as_artifact_set_platform(
                self.as_ref().to_glib_none().0,
                platform.to_glib_none().0,
            );
        }
    }

    #[doc(alias = "as_artifact_set_size")]
    fn set_size(&self, size: u64, kind: SizeKind) {
        unsafe {
            ffi::as_artifact_set_size(self.as_ref().to_glib_none().0, size, kind.into_glib());
        }
    }
}

impl<O: IsA<Artifact>> ArtifactExt for O {}