diff --git a/Cargo.lock b/Cargo.lock index d684d08..7fc8cdf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "aiproxy" +version = "0.1.0" +dependencies = [ + "dbus", + "dbus-codegen", + "dbus-tree", +] + [[package]] name = "anstream" version = "0.6.18" @@ -96,15 +105,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "dbus-ai" -version = "0.1.0" -dependencies = [ - "dbus", - "dbus-codegen", - "dbus-tree", -] - [[package]] name = "dbus-codegen" version = "0.12.0" diff --git a/Cargo.toml b/Cargo.toml index 72f93cb..38301af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "dbus-ai" +name = "aiproxy" version = "0.1.0" edition = "2024" authors = ["Florian RICHER "] @@ -11,5 +11,10 @@ dbus = "0.9" dbus-codegen = "0.12" dbus-tree = "0.9" +[workspace.dependencies] +thiserror = "2.0" + +aiproxy-providers = { path = "crates/aiproxy-providers" } + [build-dependencies] dbus-codegen = "0.12" \ No newline at end of file diff --git a/crates/aiproxy-providers/Cargo.toml b/crates/aiproxy-providers/Cargo.toml new file mode 100644 index 0000000..4e37f22 --- /dev/null +++ b/crates/aiproxy-providers/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "aiproxy-providers" +version = "0.1.0" +edition = "2024" + +[dependencies] +thiserror = { workspace = true } diff --git a/crates/aiproxy-providers/src/lib.rs b/crates/aiproxy-providers/src/lib.rs new file mode 100644 index 0000000..7087021 --- /dev/null +++ b/crates/aiproxy-providers/src/lib.rs @@ -0,0 +1 @@ +mod provider; \ No newline at end of file diff --git a/crates/aiproxy-providers/src/provider.rs b/crates/aiproxy-providers/src/provider.rs new file mode 100644 index 0000000..0e1288a --- /dev/null +++ b/crates/aiproxy-providers/src/provider.rs @@ -0,0 +1,25 @@ +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum ProviderBuildError { + #[error("Internal error: {0}")] + InternalError(String), +} + +pub trait Provider { + +} + +pub struct ProviderBuilder { + base_url: String, + api_key: Option +} + +impl ProviderBuilder { + pub fn build(self) -> Result, ProviderBuildError> + where + T: Provider + TryFrom, + { + Ok(Box::new(T::try_from(self)?)) + } +} \ No newline at end of file diff --git a/dbus/fr.mrdev023.ai_proxy.xml b/dbus/fr.mrdev023.aiproxy.xml similarity index 100% rename from dbus/fr.mrdev023.ai_proxy.xml rename to dbus/fr.mrdev023.aiproxy.xml