1#[doc(hidden)]
6extern crate alloc;
7
8#[cfg(feature = "std")]
9extern crate std;
10
11#[cfg(doc)]
13use crate::zenoh::{Communicator, Observable, Observer, Publisher, Querier, Queryable, Subscriber};
14use alloc::{boxed::Box, string::String};
15#[cfg(doc)]
16use dimas_core::message_types::Message;
17use thiserror::Error;
18#[cfg(doc)]
19use zenoh::query::Query;
20#[derive(Error, Debug)]
25pub enum Error {
26 #[error("no implementation available")]
28 NotImplemented,
29 #[error("no communicator with id: {0}")]
31 NoCommunicator(String),
32 #[error("no zenoh session available")]
34 NoZenohSession,
35 #[error("invalid selector for '{0}'")]
37 InvalidSelector(String),
38 #[error("creation of zenoh session failed with reason: {source}")]
40 CreateCommunicator {
41 source: Box<dyn core::error::Error + Send + Sync>,
43 },
44 #[error("getting the publisher failed")]
46 AccessPublisher,
47 #[error("a Mutex poison error happened in {0}")]
49 MutexPoison(String),
50 #[error("publishing a put message failed with reason: {source}")]
52 PublishingPut {
53 source: Box<dyn core::error::Error + Send + Sync>,
55 },
56 #[error("publishing a delete message failed with reason: {source}")]
58 PublishingDelete {
59 source: Box<dyn core::error::Error + Send + Sync>,
61 },
62 #[error("creation of a query failed with reason: {source}")]
64 QueryCreation {
65 source: Box<dyn core::error::Error + Send + Sync>,
67 },
68 #[error("callback of query failed with reason: {source}")]
70 QueryCallback {
71 source: Box<dyn core::error::Error + Send + Sync>,
73 },
74 #[error("read storage for {0} failed")]
76 ReadAccess(String),
77 #[error("write storage for {0} failed")]
79 ModifyStruct(String),
80 #[error("creation of a subscriber failed with reason: {source}")]
82 SubscriberCreation {
83 source: Box<dyn core::error::Error + Send + Sync>,
85 },
86 #[error("callback of subscriber failed with reason: {source}")]
88 SubscriberCallback {
89 source: Box<dyn core::error::Error + Send + Sync>,
91 },
92 #[error("accessing querier '{selector}' failed")]
94 AccessingQuerier {
95 selector: String,
97 },
98 #[error("accessing queryable '{selector}' failed")]
100 AccessingQueryable {
101 selector: String,
103 },
104 #[error("accessing observable '{selector}' failed")]
106 AccessingObservable {
107 selector: String,
109 },
110 #[error("the protocol '{protocol}' is unknown")]
112 UnknownProtocol {
113 protocol: String,
115 },
116}
117