bouillon 0.2.1

A thin, opinionated wrapper around soup that provides an easy, fluent API for sending HTTP requests.
Documentation
use soup::glib;

/// Types that can be converted to a [`glib::Uri`].
pub trait IntoUri: sealed::IntoUri {}

impl IntoUri for String {}

impl IntoUri for &str {}

impl IntoUri for glib::GString {}

impl IntoUri for &glib::GStr {}

impl IntoUri for glib::Uri {}

impl IntoUri for &glib::Uri {}

mod sealed {
    use super::*;

    pub trait IntoUri {
        fn into_uri(self) -> Result<glib::Uri, glib::Error>;
    }

    impl IntoUri for String {
        fn into_uri(self) -> Result<glib::Uri, glib::Error> {
            self.as_str().into_uri()
        }
    }

    impl IntoUri for &str {
        fn into_uri(self) -> Result<glib::Uri, glib::Error> {
            glib::Uri::parse(self, glib::UriFlags::ENCODED)
        }
    }

    impl IntoUri for glib::Uri {
        fn into_uri(self) -> Result<glib::Uri, glib::Error> {
            Ok(self)
        }
    }

    impl IntoUri for &glib::Uri {
        fn into_uri(self) -> Result<glib::Uri, glib::Error> {
            Ok(self.clone())
        }
    }

    impl IntoUri for glib::GString {
        fn into_uri(self) -> Result<glib::Uri, glib::Error> {
            self.as_str().into_uri()
        }
    }

    impl IntoUri for &glib::GStr {
        fn into_uri(self) -> Result<glib::Uri, glib::Error> {
            self.as_str().into_uri()
        }
    }
}