refactor(ipc): connect() в ipc::conn; sdk ре-экспортит

Сервисам нужен bus-bootstrap, а от sdk они не зависят (граница architecture §3).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alexander <akotenev2003@gmail.com>
This commit is contained in:
2026-06-24 12:37:09 +03:00
parent afa1afa970
commit d62ba80755
3 changed files with 16 additions and 10 deletions
+12
View File
@@ -0,0 +1,12 @@
//! Бутстрап D-Bus-соединения (ipc §1). Прод/VM — **системная шина устройства**;
//! dev/тесты — сессионная (env `SHTURMAN_BUS=session`). Используется и сервисами, и `sdk`.
use zbus::Connection;
/// По умолчанию — системная шина; `SHTURMAN_BUS=session` → сессионная (герметичные тесты/dev, План 3/5).
pub async fn connect() -> zbus::Result<Connection> {
match std::env::var("SHTURMAN_BUS").as_deref() {
Ok("session") => Connection::session().await,
_ => Connection::system().await,
}
}
+2
View File
@@ -2,11 +2,13 @@
//! Источник правды по шине (ipc.md). `sdk` и сервисы используют его по разные стороны границы
//! (architecture §3): сервисы реализуют `#[interface]`, клиенты берут `#[proxy]`.
pub mod conn;
pub mod error;
pub mod names;
pub mod proxy;
pub mod types;
pub use conn::connect;
pub use error::Error;
pub use proxy::{Power1Proxy, Settings1Proxy};
pub use types::{IgnitionState, PowerSource, PowerState, ShutdownReason};
+2 -10
View File
@@ -1,13 +1,5 @@
//! Бутстрап D-Bus-соединения. Прод/VM — **системная шина устройства** (ipc §1);
//! dev/тесты — сессионная (env `SHTURMAN_BUS=session`, см. План 3).
use zbus::Connection;
/// Подключиться к шине Штурмана.
/// По умолчанию — системная; `SHTURMAN_BUS=session` → сессионная (герметичные тесты/dev).
pub async fn connect() -> zbus::Result<Connection> {
match std::env::var("SHTURMAN_BUS").as_deref() {
Ok("session") => Connection::session().await,
_ => Connection::system().await,
}
}
// connect() переехал в ipc::conn (нужен и сервисам, и sdk). Здесь — ре-экспорт для стабильного API sdk.
pub use shturman_ipc::connect;