1use alloc::string::String;
4use alloc::vec::Vec;
5use serde::{Deserialize, Serialize};
6
7pub use ids::{Sri, Srn};
8pub use names::{Command, Event};
9pub use naming::{NameError, ROOT_NS, child_sri, resolve_target, sri_of_path, validate_segment};
10
11mod ids;
12mod names;
13pub mod naming;
14pub mod spawn_ref;
15
16pub const ERR_CELL_CMD_TIMEOUT: i32 = -7;
19pub const ERR_CELL_CMD_CELL_NOT_PRESENT: i32 = -2;
21pub const ERR_CELL_CMD_COMMAND_NOT_PRESENT: i32 = -3;
24pub const ERR_CELL_CMD_CELL_ERROR: i32 = -4;
27pub const ERR_CELL_CMD_INTERNAL: i32 = -5;
29pub const ERR_CELL_CMD_SMALL_BUFFER: i32 = -6;
31pub const ERR_SERIALISATION: i32 = -127;
33
34#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for CommandRequest {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private229::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
let mut __serde_state =
_serde::Serializer::serialize_struct(__serializer,
"CommandRequest", false as usize + 1 + 1 + 1)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"sri", &self.sri)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"command", &self.command)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"payload", &self.payload)?;
_serde::ser::SerializeStruct::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for CommandRequest {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __field1, __field2, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
1u64 => _serde::__private229::Ok(__Field::__field1),
2u64 => _serde::__private229::Ok(__Field::__field2),
_ => _serde::__private229::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"sri" => _serde::__private229::Ok(__Field::__field0),
"command" => _serde::__private229::Ok(__Field::__field1),
"payload" => _serde::__private229::Ok(__Field::__field2),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"sri" => _serde::__private229::Ok(__Field::__field0),
b"command" => _serde::__private229::Ok(__Field::__field1),
b"payload" => _serde::__private229::Ok(__Field::__field2),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<CommandRequest>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = CommandRequest;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"struct CommandRequest")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<Sri>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(0usize,
&"struct CommandRequest with 3 elements")),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Command>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(1usize,
&"struct CommandRequest with 3 elements")),
};
let __field2 =
match _serde::de::SeqAccess::next_element::<Option<Vec<u8>>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(2usize,
&"struct CommandRequest with 3 elements")),
};
_serde::__private229::Ok(CommandRequest {
sri: __field0,
command: __field1,
payload: __field2,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0: _serde::__private229::Option<Sri> =
_serde::__private229::None;
let mut __field1: _serde::__private229::Option<Command> =
_serde::__private229::None;
let mut __field2:
_serde::__private229::Option<Option<Vec<u8>>> =
_serde::__private229::None;
while let _serde::__private229::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private229::Option::is_some(&__field0) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("sri"));
}
__field0 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Sri>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private229::Option::is_some(&__field1) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("command"));
}
__field1 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Command>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private229::Option::is_some(&__field2) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("payload"));
}
__field2 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<Vec<u8>>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private229::Some(__field0) => __field0,
_serde::__private229::None =>
_serde::__private229::de::missing_field("sri")?,
};
let __field1 =
match __field1 {
_serde::__private229::Some(__field1) => __field1,
_serde::__private229::None =>
_serde::__private229::de::missing_field("command")?,
};
let __field2 =
match __field2 {
_serde::__private229::Some(__field2) => __field2,
_serde::__private229::None =>
_serde::__private229::de::missing_field("payload")?,
};
_serde::__private229::Ok(CommandRequest {
sri: __field0,
command: __field1,
payload: __field2,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["sri", "command", "payload"];
_serde::Deserializer::deserialize_struct(__deserializer,
"CommandRequest", FIELDS,
__Visitor {
marker: _serde::__private229::PhantomData::<CommandRequest>,
lifetime: _serde::__private229::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
#[allow(missing_docs)]
impl ::core::fmt::Debug for CommandRequest {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field3_finish(f,
"CommandRequest", "sri", &self.sri, "command", &self.command,
"payload", &&self.payload)
}
}Debug)]
36#[allow(missing_docs)]
37pub struct CommandRequest {
38 pub sri: Sri,
39 pub command: Command,
40 pub payload: Option<Vec<u8>>,
42}
43
44#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for EventPublishRequest {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private229::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
let mut __serde_state =
_serde::Serializer::serialize_struct(__serializer,
"EventPublishRequest", false as usize + 1 + 1)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"event", &self.event)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"payload", &self.payload)?;
_serde::ser::SerializeStruct::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for EventPublishRequest {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __field1, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
1u64 => _serde::__private229::Ok(__Field::__field1),
_ => _serde::__private229::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"event" => _serde::__private229::Ok(__Field::__field0),
"payload" => _serde::__private229::Ok(__Field::__field1),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"event" => _serde::__private229::Ok(__Field::__field0),
b"payload" => _serde::__private229::Ok(__Field::__field1),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<EventPublishRequest>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = EventPublishRequest;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"struct EventPublishRequest")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<Event>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(0usize,
&"struct EventPublishRequest with 2 elements")),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Option<Vec<u8>>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(1usize,
&"struct EventPublishRequest with 2 elements")),
};
_serde::__private229::Ok(EventPublishRequest {
event: __field0,
payload: __field1,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0: _serde::__private229::Option<Event> =
_serde::__private229::None;
let mut __field1:
_serde::__private229::Option<Option<Vec<u8>>> =
_serde::__private229::None;
while let _serde::__private229::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private229::Option::is_some(&__field0) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("event"));
}
__field0 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Event>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private229::Option::is_some(&__field1) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("payload"));
}
__field1 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<Vec<u8>>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private229::Some(__field0) => __field0,
_serde::__private229::None =>
_serde::__private229::de::missing_field("event")?,
};
let __field1 =
match __field1 {
_serde::__private229::Some(__field1) => __field1,
_serde::__private229::None =>
_serde::__private229::de::missing_field("payload")?,
};
_serde::__private229::Ok(EventPublishRequest {
event: __field0,
payload: __field1,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] = &["event", "payload"];
_serde::Deserializer::deserialize_struct(__deserializer,
"EventPublishRequest", FIELDS,
__Visitor {
marker: _serde::__private229::PhantomData::<EventPublishRequest>,
lifetime: _serde::__private229::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
#[allow(missing_docs)]
impl ::core::fmt::Debug for EventPublishRequest {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f,
"EventPublishRequest", "event", &self.event, "payload",
&&self.payload)
}
}Debug)]
46#[allow(missing_docs)]
47pub struct EventPublishRequest {
48 pub event: Event,
49 pub payload: Option<Vec<u8>>,
51}
52
53#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for CreateTimerRequest {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private229::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
let mut __serde_state =
_serde::Serializer::serialize_struct(__serializer,
"CreateTimerRequest", false as usize + 1 + 1 + 1 + 1 + 1)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"export_name", &self.export_name)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"delay_ms", &self.delay_ms)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"period_ms", &self.period_ms)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"count", &self.count)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"fixed_delay", &self.fixed_delay)?;
_serde::ser::SerializeStruct::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for CreateTimerRequest {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field {
__field0,
__field1,
__field2,
__field3,
__field4,
__ignore,
}
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
1u64 => _serde::__private229::Ok(__Field::__field1),
2u64 => _serde::__private229::Ok(__Field::__field2),
3u64 => _serde::__private229::Ok(__Field::__field3),
4u64 => _serde::__private229::Ok(__Field::__field4),
_ => _serde::__private229::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"export_name" =>
_serde::__private229::Ok(__Field::__field0),
"delay_ms" => _serde::__private229::Ok(__Field::__field1),
"period_ms" => _serde::__private229::Ok(__Field::__field2),
"count" => _serde::__private229::Ok(__Field::__field3),
"fixed_delay" =>
_serde::__private229::Ok(__Field::__field4),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"export_name" =>
_serde::__private229::Ok(__Field::__field0),
b"delay_ms" => _serde::__private229::Ok(__Field::__field1),
b"period_ms" => _serde::__private229::Ok(__Field::__field2),
b"count" => _serde::__private229::Ok(__Field::__field3),
b"fixed_delay" =>
_serde::__private229::Ok(__Field::__field4),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<CreateTimerRequest>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = CreateTimerRequest;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"struct CreateTimerRequest")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<String>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(0usize,
&"struct CreateTimerRequest with 5 elements")),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<u64>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(1usize,
&"struct CreateTimerRequest with 5 elements")),
};
let __field2 =
match _serde::de::SeqAccess::next_element::<u64>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(2usize,
&"struct CreateTimerRequest with 5 elements")),
};
let __field3 =
match _serde::de::SeqAccess::next_element::<Option<u32>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(3usize,
&"struct CreateTimerRequest with 5 elements")),
};
let __field4 =
match _serde::de::SeqAccess::next_element::<bool>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(4usize,
&"struct CreateTimerRequest with 5 elements")),
};
_serde::__private229::Ok(CreateTimerRequest {
export_name: __field0,
delay_ms: __field1,
period_ms: __field2,
count: __field3,
fixed_delay: __field4,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0: _serde::__private229::Option<String> =
_serde::__private229::None;
let mut __field1: _serde::__private229::Option<u64> =
_serde::__private229::None;
let mut __field2: _serde::__private229::Option<u64> =
_serde::__private229::None;
let mut __field3:
_serde::__private229::Option<Option<u32>> =
_serde::__private229::None;
let mut __field4: _serde::__private229::Option<bool> =
_serde::__private229::None;
while let _serde::__private229::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private229::Option::is_some(&__field0) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("export_name"));
}
__field0 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<String>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private229::Option::is_some(&__field1) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("delay_ms"));
}
__field1 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<u64>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private229::Option::is_some(&__field2) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("period_ms"));
}
__field2 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<u64>(&mut __map)?);
}
__Field::__field3 => {
if _serde::__private229::Option::is_some(&__field3) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("count"));
}
__field3 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<u32>>(&mut __map)?);
}
__Field::__field4 => {
if _serde::__private229::Option::is_some(&__field4) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("fixed_delay"));
}
__field4 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<bool>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private229::Some(__field0) => __field0,
_serde::__private229::None =>
_serde::__private229::de::missing_field("export_name")?,
};
let __field1 =
match __field1 {
_serde::__private229::Some(__field1) => __field1,
_serde::__private229::None =>
_serde::__private229::de::missing_field("delay_ms")?,
};
let __field2 =
match __field2 {
_serde::__private229::Some(__field2) => __field2,
_serde::__private229::None =>
_serde::__private229::de::missing_field("period_ms")?,
};
let __field3 =
match __field3 {
_serde::__private229::Some(__field3) => __field3,
_serde::__private229::None =>
_serde::__private229::de::missing_field("count")?,
};
let __field4 =
match __field4 {
_serde::__private229::Some(__field4) => __field4,
_serde::__private229::None =>
_serde::__private229::de::missing_field("fixed_delay")?,
};
_serde::__private229::Ok(CreateTimerRequest {
export_name: __field0,
delay_ms: __field1,
period_ms: __field2,
count: __field3,
fixed_delay: __field4,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["export_name", "delay_ms", "period_ms", "count",
"fixed_delay"];
_serde::Deserializer::deserialize_struct(__deserializer,
"CreateTimerRequest", FIELDS,
__Visitor {
marker: _serde::__private229::PhantomData::<CreateTimerRequest>,
lifetime: _serde::__private229::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::fmt::Debug for CreateTimerRequest {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field5_finish(f,
"CreateTimerRequest", "export_name", &self.export_name,
"delay_ms", &self.delay_ms, "period_ms", &self.period_ms, "count",
&self.count, "fixed_delay", &&self.fixed_delay)
}
}Debug)]
55pub struct CreateTimerRequest {
56 pub export_name: String,
58 pub delay_ms: u64,
60 pub period_ms: u64,
62 pub count: Option<u32>,
64 pub fixed_delay: bool,
68}
69
70#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ClassRef {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
Self::Hash(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Hash",
&__self_0),
Self::Name(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Name",
&__self_0),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for ClassRef {
#[inline]
fn clone(&self) -> Self {
match self {
Self::Hash(__self_0) =>
Self::Hash(::core::clone::Clone::clone(__self_0)),
Self::Name(__self_0) =>
Self::Name(::core::clone::Clone::clone(__self_0)),
}
}
}Clone, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for ClassRef {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private229::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
match *self {
ClassRef::Hash(ref __field0) =>
_serde::Serializer::serialize_newtype_variant(__serializer,
"ClassRef", 0u32, "Hash", __field0),
ClassRef::Name(ref __field0) =>
_serde::Serializer::serialize_newtype_variant(__serializer,
"ClassRef", 1u32, "Name", __field0),
}
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for ClassRef {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __field1, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"variant identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
1u64 => _serde::__private229::Ok(__Field::__field1),
_ =>
_serde::__private229::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value),
&"variant index 0 <= i < 2")),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"Hash" => _serde::__private229::Ok(__Field::__field0),
"Name" => _serde::__private229::Ok(__Field::__field1),
_ => {
_serde::__private229::Err(_serde::de::Error::unknown_variant(__value,
VARIANTS))
}
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"Hash" => _serde::__private229::Ok(__Field::__field0),
b"Name" => _serde::__private229::Ok(__Field::__field1),
_ => {
let __value =
&_serde::__private229::from_utf8_lossy(__value);
_serde::__private229::Err(_serde::de::Error::unknown_variant(__value,
VARIANTS))
}
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<ClassRef>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = ClassRef;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"enum ClassRef")
}
fn visit_enum<__A>(self, __data: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::EnumAccess<'de> {
match _serde::de::EnumAccess::variant(__data) {
_serde::__private229::Ok((__Field::__field0, __variant)) =>
_serde::__private229::Result::map(_serde::de::VariantAccess::newtype_variant::<[u8; 32]>(__variant),
ClassRef::Hash),
_serde::__private229::Ok((__Field::__field1, __variant)) =>
_serde::__private229::Result::map(_serde::de::VariantAccess::newtype_variant::<String>(__variant),
ClassRef::Name),
_serde::__private229::Err(__err) =>
_serde::__private229::Err(__err),
}
}
}
#[doc(hidden)]
const VARIANTS: &'static [&'static str] = &["Hash", "Name"];
_serde::Deserializer::deserialize_enum(__deserializer,
"ClassRef", VARIANTS,
__Visitor {
marker: _serde::__private229::PhantomData::<ClassRef>,
lifetime: _serde::__private229::PhantomData,
})
}
}
};Deserialize)]
74pub enum ClassRef {
75 Hash([u8; 32]),
77 Name(String),
79}
80
81#[derive(#[automatically_derived]
impl ::core::fmt::Debug for SpawnRequest {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
let names: &'static _ =
&["class", "local_name", "tags", "arguments", "detached",
"grace_ms", "deadline_ms"];
let values: &[&dyn ::core::fmt::Debug] =
&[&self.class, &self.local_name, &self.tags, &self.arguments,
&self.detached, &self.grace_ms, &&self.deadline_ms];
::core::fmt::Formatter::debug_struct_fields_finish(f, "SpawnRequest",
names, values)
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for SpawnRequest {
#[inline]
fn clone(&self) -> Self {
Self {
class: ::core::clone::Clone::clone(&self.class),
local_name: ::core::clone::Clone::clone(&self.local_name),
tags: ::core::clone::Clone::clone(&self.tags),
arguments: ::core::clone::Clone::clone(&self.arguments),
detached: ::core::clone::Clone::clone(&self.detached),
grace_ms: ::core::clone::Clone::clone(&self.grace_ms),
deadline_ms: ::core::clone::Clone::clone(&self.deadline_ms),
}
}
}Clone, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for SpawnRequest {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private229::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
let mut __serde_state =
_serde::Serializer::serialize_struct(__serializer,
"SpawnRequest",
false as usize + 1 + 1 + 1 + 1 + 1 + 1 + 1)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"class", &self.class)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"local_name", &self.local_name)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"tags", &self.tags)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"arguments", &self.arguments)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"detached", &self.detached)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"grace_ms", &self.grace_ms)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"deadline_ms", &self.deadline_ms)?;
_serde::ser::SerializeStruct::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for SpawnRequest {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field {
__field0,
__field1,
__field2,
__field3,
__field4,
__field5,
__field6,
__ignore,
}
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
1u64 => _serde::__private229::Ok(__Field::__field1),
2u64 => _serde::__private229::Ok(__Field::__field2),
3u64 => _serde::__private229::Ok(__Field::__field3),
4u64 => _serde::__private229::Ok(__Field::__field4),
5u64 => _serde::__private229::Ok(__Field::__field5),
6u64 => _serde::__private229::Ok(__Field::__field6),
_ => _serde::__private229::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"class" => _serde::__private229::Ok(__Field::__field0),
"local_name" => _serde::__private229::Ok(__Field::__field1),
"tags" => _serde::__private229::Ok(__Field::__field2),
"arguments" => _serde::__private229::Ok(__Field::__field3),
"detached" => _serde::__private229::Ok(__Field::__field4),
"grace_ms" => _serde::__private229::Ok(__Field::__field5),
"deadline_ms" =>
_serde::__private229::Ok(__Field::__field6),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"class" => _serde::__private229::Ok(__Field::__field0),
b"local_name" =>
_serde::__private229::Ok(__Field::__field1),
b"tags" => _serde::__private229::Ok(__Field::__field2),
b"arguments" => _serde::__private229::Ok(__Field::__field3),
b"detached" => _serde::__private229::Ok(__Field::__field4),
b"grace_ms" => _serde::__private229::Ok(__Field::__field5),
b"deadline_ms" =>
_serde::__private229::Ok(__Field::__field6),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<SpawnRequest>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = SpawnRequest;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"struct SpawnRequest")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<ClassRef>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(0usize,
&"struct SpawnRequest with 7 elements")),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Option<String>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(1usize,
&"struct SpawnRequest with 7 elements")),
};
let __field2 =
match _serde::de::SeqAccess::next_element::<Option<Vec<String>>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(2usize,
&"struct SpawnRequest with 7 elements")),
};
let __field3 =
match _serde::de::SeqAccess::next_element::<Option<Vec<u8>>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(3usize,
&"struct SpawnRequest with 7 elements")),
};
let __field4 =
match _serde::de::SeqAccess::next_element::<bool>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(4usize,
&"struct SpawnRequest with 7 elements")),
};
let __field5 =
match _serde::de::SeqAccess::next_element::<Option<u64>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(5usize,
&"struct SpawnRequest with 7 elements")),
};
let __field6 =
match _serde::de::SeqAccess::next_element::<Option<u64>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(6usize,
&"struct SpawnRequest with 7 elements")),
};
_serde::__private229::Ok(SpawnRequest {
class: __field0,
local_name: __field1,
tags: __field2,
arguments: __field3,
detached: __field4,
grace_ms: __field5,
deadline_ms: __field6,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0: _serde::__private229::Option<ClassRef> =
_serde::__private229::None;
let mut __field1:
_serde::__private229::Option<Option<String>> =
_serde::__private229::None;
let mut __field2:
_serde::__private229::Option<Option<Vec<String>>> =
_serde::__private229::None;
let mut __field3:
_serde::__private229::Option<Option<Vec<u8>>> =
_serde::__private229::None;
let mut __field4: _serde::__private229::Option<bool> =
_serde::__private229::None;
let mut __field5:
_serde::__private229::Option<Option<u64>> =
_serde::__private229::None;
let mut __field6:
_serde::__private229::Option<Option<u64>> =
_serde::__private229::None;
while let _serde::__private229::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private229::Option::is_some(&__field0) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("class"));
}
__field0 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<ClassRef>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private229::Option::is_some(&__field1) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("local_name"));
}
__field1 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private229::Option::is_some(&__field2) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("tags"));
}
__field2 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<Vec<String>>>(&mut __map)?);
}
__Field::__field3 => {
if _serde::__private229::Option::is_some(&__field3) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("arguments"));
}
__field3 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<Vec<u8>>>(&mut __map)?);
}
__Field::__field4 => {
if _serde::__private229::Option::is_some(&__field4) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("detached"));
}
__field4 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<bool>(&mut __map)?);
}
__Field::__field5 => {
if _serde::__private229::Option::is_some(&__field5) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("grace_ms"));
}
__field5 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<u64>>(&mut __map)?);
}
__Field::__field6 => {
if _serde::__private229::Option::is_some(&__field6) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("deadline_ms"));
}
__field6 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<u64>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private229::Some(__field0) => __field0,
_serde::__private229::None =>
_serde::__private229::de::missing_field("class")?,
};
let __field1 =
match __field1 {
_serde::__private229::Some(__field1) => __field1,
_serde::__private229::None =>
_serde::__private229::de::missing_field("local_name")?,
};
let __field2 =
match __field2 {
_serde::__private229::Some(__field2) => __field2,
_serde::__private229::None =>
_serde::__private229::de::missing_field("tags")?,
};
let __field3 =
match __field3 {
_serde::__private229::Some(__field3) => __field3,
_serde::__private229::None =>
_serde::__private229::de::missing_field("arguments")?,
};
let __field4 =
match __field4 {
_serde::__private229::Some(__field4) => __field4,
_serde::__private229::None =>
_serde::__private229::de::missing_field("detached")?,
};
let __field5 =
match __field5 {
_serde::__private229::Some(__field5) => __field5,
_serde::__private229::None =>
_serde::__private229::de::missing_field("grace_ms")?,
};
let __field6 =
match __field6 {
_serde::__private229::Some(__field6) => __field6,
_serde::__private229::None =>
_serde::__private229::de::missing_field("deadline_ms")?,
};
_serde::__private229::Ok(SpawnRequest {
class: __field0,
local_name: __field1,
tags: __field2,
arguments: __field3,
detached: __field4,
grace_ms: __field5,
deadline_ms: __field6,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["class", "local_name", "tags", "arguments", "detached",
"grace_ms", "deadline_ms"];
_serde::Deserializer::deserialize_struct(__deserializer,
"SpawnRequest", FIELDS,
__Visitor {
marker: _serde::__private229::PhantomData::<SpawnRequest>,
lifetime: _serde::__private229::PhantomData,
})
}
}
};Deserialize)]
84pub struct SpawnRequest {
85 pub class: ClassRef,
87 pub local_name: Option<String>,
91 pub tags: Option<Vec<String>>,
94 pub arguments: Option<Vec<u8>>,
99 pub detached: bool,
103 pub grace_ms: Option<u64>,
106 pub deadline_ms: Option<u64>,
112}
113
114pub const STATUS_OK: core::ffi::c_int = 0;
116pub const SPAWN_ERR_CLASS_NOT_FOUND: core::ffi::c_int = -10;
118pub const SPAWN_ERR_ALREADY_EXISTS: core::ffi::c_int = -11;
120pub const SPAWN_ERR_DEPLOY_FAILED: core::ffi::c_int = -12;
122
123#[derive(#[automatically_derived]
impl ::core::fmt::Debug for SpawnError {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
SpawnError::ClassNotFound => "ClassNotFound",
SpawnError::AlreadyExists => "AlreadyExists",
SpawnError::DeployFailed => "DeployFailed",
})
}
}Debug, #[automatically_derived]
#[doc(hidden)]
unsafe impl ::core::clone::TrivialClone for SpawnError { }
#[automatically_derived]
impl ::core::clone::Clone for SpawnError {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for SpawnError { }Copy, #[automatically_derived]
impl ::core::marker::StructuralPartialEq for SpawnError { }
#[automatically_derived]
impl ::core::cmp::PartialEq for SpawnError {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other)
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for SpawnError { }Eq)]
125pub enum SpawnError {
126 ClassNotFound,
128 AlreadyExists,
130 DeployFailed,
132}
133
134impl TryFrom<core::ffi::c_int> for SpawnError {
135 type Error = core::ffi::c_int;
136
137 fn try_from(code: core::ffi::c_int) -> Result<Self, Self::Error> {
138 match code {
139 SPAWN_ERR_CLASS_NOT_FOUND => Ok(Self::ClassNotFound),
140 SPAWN_ERR_ALREADY_EXISTS => Ok(Self::AlreadyExists),
141 SPAWN_ERR_DEPLOY_FAILED => Ok(Self::DeployFailed),
142 _ => Err(code),
143 }
144 }
145}
146
147impl From<SpawnError> for &'static str {
148 fn from(err: SpawnError) -> Self {
149 match err {
150 SpawnError::ClassNotFound => "class not found",
151 SpawnError::AlreadyExists => "already exists",
152 SpawnError::DeployFailed => "deploy failed",
153 }
154 }
155}
156
157pub const SYS_CELL_LOST: &str = "__sys_cell_lost";
162
163pub const SYS_COMMAND_PREFIX: &str = "__sys";
165
166#[derive(#[automatically_derived]
impl ::core::fmt::Debug for LostReason {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
Self::NodeLost =>
::core::fmt::Formatter::write_str(f, "NodeLost"),
Self::Crashed => ::core::fmt::Formatter::write_str(f, "Crashed"),
Self::Stopped { code: __self_0 } =>
::core::fmt::Formatter::debug_struct_field1_finish(f,
"Stopped", "code", &__self_0),
Self::Terminated =>
::core::fmt::Formatter::write_str(f, "Terminated"),
Self::SpawnFailed =>
::core::fmt::Formatter::write_str(f, "SpawnFailed"),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for LostReason {
#[inline]
fn clone(&self) -> Self {
match self {
Self::NodeLost => Self::NodeLost,
Self::Crashed => Self::Crashed,
Self::Stopped { code: __self_0 } =>
Self::Stopped { code: ::core::clone::Clone::clone(__self_0) },
Self::Terminated => Self::Terminated,
Self::SpawnFailed => Self::SpawnFailed,
}
}
}Clone, #[automatically_derived]
impl ::core::marker::StructuralPartialEq for LostReason { }
#[automatically_derived]
impl ::core::cmp::PartialEq for LostReason {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other) &&
match (self, other) {
(Self::Stopped { code: __self_0 }, Self::Stopped {
code: __arg1_0 }) => __self_0 == __arg1_0,
_ => true,
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for LostReason {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<Option<u32>>;
}
}Eq, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for LostReason {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private229::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
match *self {
LostReason::NodeLost =>
_serde::Serializer::serialize_unit_variant(__serializer,
"LostReason", 0u32, "NodeLost"),
LostReason::Crashed =>
_serde::Serializer::serialize_unit_variant(__serializer,
"LostReason", 1u32, "Crashed"),
LostReason::Stopped { ref code } => {
let mut __serde_state =
_serde::Serializer::serialize_struct_variant(__serializer,
"LostReason", 2u32, "Stopped", 0 + 1)?;
_serde::ser::SerializeStructVariant::serialize_field(&mut __serde_state,
"code", code)?;
_serde::ser::SerializeStructVariant::end(__serde_state)
}
LostReason::Terminated =>
_serde::Serializer::serialize_unit_variant(__serializer,
"LostReason", 3u32, "Terminated"),
LostReason::SpawnFailed =>
_serde::Serializer::serialize_unit_variant(__serializer,
"LostReason", 4u32, "SpawnFailed"),
}
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for LostReason {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field {
__field0,
__field1,
__field2,
__field3,
__field4,
}
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"variant identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
1u64 => _serde::__private229::Ok(__Field::__field1),
2u64 => _serde::__private229::Ok(__Field::__field2),
3u64 => _serde::__private229::Ok(__Field::__field3),
4u64 => _serde::__private229::Ok(__Field::__field4),
_ =>
_serde::__private229::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value),
&"variant index 0 <= i < 5")),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"NodeLost" => _serde::__private229::Ok(__Field::__field0),
"Crashed" => _serde::__private229::Ok(__Field::__field1),
"Stopped" => _serde::__private229::Ok(__Field::__field2),
"Terminated" => _serde::__private229::Ok(__Field::__field3),
"SpawnFailed" =>
_serde::__private229::Ok(__Field::__field4),
_ => {
_serde::__private229::Err(_serde::de::Error::unknown_variant(__value,
VARIANTS))
}
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"NodeLost" => _serde::__private229::Ok(__Field::__field0),
b"Crashed" => _serde::__private229::Ok(__Field::__field1),
b"Stopped" => _serde::__private229::Ok(__Field::__field2),
b"Terminated" =>
_serde::__private229::Ok(__Field::__field3),
b"SpawnFailed" =>
_serde::__private229::Ok(__Field::__field4),
_ => {
let __value =
&_serde::__private229::from_utf8_lossy(__value);
_serde::__private229::Err(_serde::de::Error::unknown_variant(__value,
VARIANTS))
}
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<LostReason>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = LostReason;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"enum LostReason")
}
fn visit_enum<__A>(self, __data: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::EnumAccess<'de> {
match _serde::de::EnumAccess::variant(__data) {
_serde::__private229::Ok((__Field::__field0, __variant)) =>
{
_serde::de::VariantAccess::unit_variant(__variant)?;
_serde::__private229::Ok(LostReason::NodeLost)
}
_serde::__private229::Ok((__Field::__field1, __variant)) =>
{
_serde::de::VariantAccess::unit_variant(__variant)?;
_serde::__private229::Ok(LostReason::Crashed)
}
_serde::__private229::Ok((__Field::__field2, __variant)) =>
{
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
_ => _serde::__private229::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"code" => _serde::__private229::Ok(__Field::__field0),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"code" => _serde::__private229::Ok(__Field::__field0),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<LostReason>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = LostReason;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"struct variant LostReason::Stopped")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<Option<u32>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(0usize,
&"struct variant LostReason::Stopped with 1 element")),
};
_serde::__private229::Ok(LostReason::Stopped {
code: __field0,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private229::Option<Option<u32>> =
_serde::__private229::None;
while let _serde::__private229::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private229::Option::is_some(&__field0) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("code"));
}
__field0 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<u32>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private229::Some(__field0) => __field0,
_serde::__private229::None =>
_serde::__private229::de::missing_field("code")?,
};
_serde::__private229::Ok(LostReason::Stopped {
code: __field0,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] = &["code"];
_serde::de::VariantAccess::struct_variant(__variant, FIELDS,
__Visitor {
marker: _serde::__private229::PhantomData::<LostReason>,
lifetime: _serde::__private229::PhantomData,
})
}
_serde::__private229::Ok((__Field::__field3, __variant)) =>
{
_serde::de::VariantAccess::unit_variant(__variant)?;
_serde::__private229::Ok(LostReason::Terminated)
}
_serde::__private229::Ok((__Field::__field4, __variant)) =>
{
_serde::de::VariantAccess::unit_variant(__variant)?;
_serde::__private229::Ok(LostReason::SpawnFailed)
}
_serde::__private229::Err(__err) =>
_serde::__private229::Err(__err),
}
}
}
#[doc(hidden)]
const VARIANTS: &'static [&'static str] =
&["NodeLost", "Crashed", "Stopped", "Terminated",
"SpawnFailed"];
_serde::Deserializer::deserialize_enum(__deserializer,
"LostReason", VARIANTS,
__Visitor {
marker: _serde::__private229::PhantomData::<LostReason>,
lifetime: _serde::__private229::PhantomData,
})
}
}
};Deserialize)]
168pub enum LostReason {
169 NodeLost,
171 Crashed,
174 Stopped {
176 code: Option<u32>,
178 },
179 Terminated,
181 SpawnFailed,
185}
186
187#[derive(#[automatically_derived]
impl ::core::fmt::Debug for CellLost {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field3_finish(f, "CellLost",
"cell", &self.cell, "local_name", &self.local_name, "reason",
&&self.reason)
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for CellLost {
#[inline]
fn clone(&self) -> Self {
Self {
cell: ::core::clone::Clone::clone(&self.cell),
local_name: ::core::clone::Clone::clone(&self.local_name),
reason: ::core::clone::Clone::clone(&self.reason),
}
}
}Clone, #[automatically_derived]
impl ::core::marker::StructuralPartialEq for CellLost { }
#[automatically_derived]
impl ::core::cmp::PartialEq for CellLost {
#[inline]
fn eq(&self, other: &Self) -> bool {
self.cell == other.cell && self.local_name == other.local_name &&
self.reason == other.reason
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for CellLost {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<Sri>;
let _: ::core::cmp::AssertParamIsEq<Option<String>>;
let _: ::core::cmp::AssertParamIsEq<LostReason>;
}
}Eq, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for CellLost {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private229::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
let mut __serde_state =
_serde::Serializer::serialize_struct(__serializer,
"CellLost", false as usize + 1 + 1 + 1)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"cell", &self.cell)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"local_name", &self.local_name)?;
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"reason", &self.reason)?;
_serde::ser::SerializeStruct::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for CellLost {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __field1, __field2, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private229::Ok(__Field::__field0),
1u64 => _serde::__private229::Ok(__Field::__field1),
2u64 => _serde::__private229::Ok(__Field::__field2),
_ => _serde::__private229::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"cell" => _serde::__private229::Ok(__Field::__field0),
"local_name" => _serde::__private229::Ok(__Field::__field1),
"reason" => _serde::__private229::Ok(__Field::__field2),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private229::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"cell" => _serde::__private229::Ok(__Field::__field0),
b"local_name" =>
_serde::__private229::Ok(__Field::__field1),
b"reason" => _serde::__private229::Ok(__Field::__field2),
_ => { _serde::__private229::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private229::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private229::PhantomData<CellLost>,
lifetime: _serde::__private229::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = CellLost;
fn expecting(&self,
__formatter: &mut _serde::__private229::Formatter)
-> _serde::__private229::fmt::Result {
_serde::__private229::Formatter::write_str(__formatter,
"struct CellLost")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<Sri>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(0usize,
&"struct CellLost with 3 elements")),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Option<String>>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(1usize,
&"struct CellLost with 3 elements")),
};
let __field2 =
match _serde::de::SeqAccess::next_element::<LostReason>(&mut __seq)?
{
_serde::__private229::Some(__value) => __value,
_serde::__private229::None =>
return _serde::__private229::Err(_serde::de::Error::invalid_length(2usize,
&"struct CellLost with 3 elements")),
};
_serde::__private229::Ok(CellLost {
cell: __field0,
local_name: __field1,
reason: __field2,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private229::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0: _serde::__private229::Option<Sri> =
_serde::__private229::None;
let mut __field1:
_serde::__private229::Option<Option<String>> =
_serde::__private229::None;
let mut __field2: _serde::__private229::Option<LostReason> =
_serde::__private229::None;
while let _serde::__private229::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private229::Option::is_some(&__field0) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("cell"));
}
__field0 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Sri>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private229::Option::is_some(&__field1) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("local_name"));
}
__field1 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private229::Option::is_some(&__field2) {
return _serde::__private229::Err(<__A::Error as
_serde::de::Error>::duplicate_field("reason"));
}
__field2 =
_serde::__private229::Some(_serde::de::MapAccess::next_value::<LostReason>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private229::Some(__field0) => __field0,
_serde::__private229::None =>
_serde::__private229::de::missing_field("cell")?,
};
let __field1 =
match __field1 {
_serde::__private229::Some(__field1) => __field1,
_serde::__private229::None =>
_serde::__private229::de::missing_field("local_name")?,
};
let __field2 =
match __field2 {
_serde::__private229::Some(__field2) => __field2,
_serde::__private229::None =>
_serde::__private229::de::missing_field("reason")?,
};
_serde::__private229::Ok(CellLost {
cell: __field0,
local_name: __field1,
reason: __field2,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["cell", "local_name", "reason"];
_serde::Deserializer::deserialize_struct(__deserializer,
"CellLost", FIELDS,
__Visitor {
marker: _serde::__private229::PhantomData::<CellLost>,
lifetime: _serde::__private229::PhantomData,
})
}
}
};Deserialize)]
192pub struct CellLost {
193 pub cell: Sri,
195 pub local_name: Option<String>,
199 pub reason: LostReason,
201}
202
203pub const TERMINATE_ERR_NOT_FOUND: core::ffi::c_int = -20;
205pub const TERMINATE_ERR_UNDEPLOY_FAILED: core::ffi::c_int = -21;
207pub const TERMINATE_ERR_ERASE_FAILED: core::ffi::c_int = -22;
209pub const TERMINATE_ERR_NOT_PERMITTED: core::ffi::c_int = -23;
212
213#[derive(#[automatically_derived]
impl ::core::fmt::Debug for TerminateError {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
TerminateError::NotFound => "NotFound",
TerminateError::UndeployFailed => "UndeployFailed",
TerminateError::EraseFailed => "EraseFailed",
TerminateError::NotPermitted => "NotPermitted",
})
}
}Debug, #[automatically_derived]
#[doc(hidden)]
unsafe impl ::core::clone::TrivialClone for TerminateError { }
#[automatically_derived]
impl ::core::clone::Clone for TerminateError {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for TerminateError { }Copy, #[automatically_derived]
impl ::core::marker::StructuralPartialEq for TerminateError { }
#[automatically_derived]
impl ::core::cmp::PartialEq for TerminateError {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other)
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for TerminateError { }Eq)]
215pub enum TerminateError {
216 NotFound,
218 UndeployFailed,
220 EraseFailed,
222 NotPermitted,
225}
226
227impl TryFrom<core::ffi::c_int> for TerminateError {
228 type Error = core::ffi::c_int;
229
230 fn try_from(code: core::ffi::c_int) -> Result<Self, Self::Error> {
231 match code {
232 TERMINATE_ERR_NOT_FOUND => Ok(Self::NotFound),
233 TERMINATE_ERR_UNDEPLOY_FAILED => Ok(Self::UndeployFailed),
234 TERMINATE_ERR_ERASE_FAILED => Ok(Self::EraseFailed),
235 TERMINATE_ERR_NOT_PERMITTED => Ok(Self::NotPermitted),
236 _ => Err(code),
237 }
238 }
239}
240
241impl From<TerminateError> for &'static str {
242 fn from(err: TerminateError) -> Self {
243 match err {
244 TerminateError::NotFound => "not found",
245 TerminateError::UndeployFailed => "undeploy failed",
246 TerminateError::EraseFailed => "erase failed",
247 TerminateError::NotPermitted => "not permitted",
248 }
249 }
250}
251
252#[cfg(test)]
253mod cell_lost_tests {
254 use alloc::string::ToString;
255
256 use super::*;
257
258 #[test]
259 fn cell_lost_round_trips_all_reasons() {
260 for reason in [
261 LostReason::NodeLost,
262 LostReason::Crashed,
263 LostReason::Stopped { code: Some(3) },
264 LostReason::Stopped { code: None },
265 LostReason::Terminated,
266 LostReason::SpawnFailed,
267 ] {
268 let v = CellLost {
269 cell: sri_of_path("round-trip-test").unwrap().into(),
270 local_name: Some("pump".to_string()),
271 reason: reason.clone(),
272 };
273 let bytes = postcard::to_allocvec(&v).unwrap();
274 assert_eq!(postcard::from_bytes::<CellLost>(&bytes).unwrap(), v);
275 }
276 }
277
278 #[test]
279 fn sys_cell_lost_is_a_valid_command_name() {
280 assert!(Command::new(SYS_CELL_LOST.to_string()).is_ok());
281 assert!(SYS_CELL_LOST.starts_with(SYS_COMMAND_PREFIX));
282 }
283}