214 pub fn set_session_destination(&self, dest: String) {214 pub fn set_session_destination(&self, dest: String) {
215 self.session_destination215 self.session_destination
216 .set(dest)216 .set(dest)
217 .ok()
218 .expect("session destination is already set")217 .expect("session destination is already set")
219 }218 }
220 pub fn set_deploy_kind(&self, kind: DeployKind) {219 pub fn set_deploy_kind(&self, kind: DeployKind) {
221 self.deploy_kind220 self.deploy_kind
222 .set(kind)221 .set(kind)
223 .ok()
224 .expect("deploy kind is already set");222 .expect("deploy kind is already set");
225 }223 }
226 pub async fn deploy_kind(&self) -> Result<DeployKind> {224 pub async fn deploy_kind(&self) -> Result<DeployKind> {
568 local: true,566 local: true,
569 session: OnceLock::new(),567 session: OnceLock::new(),
570 deploy_kind: OnceCell::new(),568 deploy_kind: OnceCell::new(),
569 session_destination: OnceCell::new(),
571 }570 }
572 }571 }
573572
588 local: self.localhost == name,587 local: self.localhost == name,
589 session: OnceLock::new(),588 session: OnceLock::new(),
590 deploy_kind: OnceCell::new(),589 deploy_kind: OnceCell::new(),
590 session_destination: OnceCell::new(),
591 })591 })
592 }592 }
593 pub async fn list_hosts(&self) -> Result<Vec<ConfigHost>> {593 pub async fn list_hosts(&self) -> Result<Vec<ConfigHost>> {
--- a/crates/nixlike/src/se_impl.rs
+++ b/crates/nixlike/src/se_impl.rs
@@ -27,9 +27,10 @@
type Error = Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
self.0.push(value.serialize(MySerialize)?);
Ok(())
@@ -44,9 +45,10 @@
type Error = Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
self.0.push(value.serialize(MySerialize)?);
Ok(())
@@ -61,9 +63,10 @@
type Error = Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
self.0.push(value.serialize(MySerialize)?);
Ok(())
@@ -81,9 +84,10 @@
type Error = Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
self.1.serialize_field(value)
}
@@ -102,9 +106,10 @@
type Error = Error;
- fn serialize_key<T: ?Sized>(&mut self, key: &T) -> Result<(), Self::Error>
+ fn serialize_key<T>(&mut self, key: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
let _ = self
.1
@@ -112,9 +117,10 @@
Ok(())
}
- fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
self.0
.insert(self.1.take().unwrap(), value.serialize(MySerialize)?);
@@ -133,9 +139,10 @@
type Error = Error;
- fn serialize_field<T: ?Sized>(&mut self, key: &str, value: &T) -> Result<(), Self::Error>
+ fn serialize_field<T>(&mut self, key: &str, value: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
self.0.insert(key.to_owned(), value.serialize(MySerialize)?);
Ok(())
@@ -153,13 +160,10 @@
type Error = Error;
- fn serialize_field<T: ?Sized>(
- &mut self,
- key: &'static str,
- value: &T,
- ) -> Result<(), Self::Error>
+ fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
self.1.insert(key.to_owned(), value.serialize(MySerialize)?);
Ok(())
@@ -253,9 +257,10 @@
Ok(Value::Null)
}
- fn serialize_some<T: ?Sized>(self, value: &T) -> Result<Self::Ok, Self::Error>
+ fn serialize_some<T>(self, value: &T) -> Result<Self::Ok, Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
value.serialize(self)
}
@@ -277,18 +282,19 @@
Ok(Value::String(variant.to_string()))
}
- fn serialize_newtype_struct<T: ?Sized>(
+ fn serialize_newtype_struct<T>(
self,
_name: &'static str,
value: &T,
) -> Result<Self::Ok, Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
value.serialize(self)
}
- fn serialize_newtype_variant<T: ?Sized>(
+ fn serialize_newtype_variant<T>(
self,
_name: &'static str,
_variant_index: u32,
@@ -297,6 +303,7 @@
) -> Result<Self::Ok, Self::Error>
where
T: serde::Serialize,
+ T: ?Sized,
{
Ok(Value::Object(
vec![(variant.to_string(), value.serialize(self)?)]