forked from github-starred/komodo
deploy 2.0.0-dev-48
This commit is contained in:
40
Cargo.lock
generated
40
Cargo.lock
generated
@@ -939,7 +939,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cache"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"tokio",
|
||||
@@ -1131,7 +1131,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "command"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"komodo_client",
|
||||
"run_command",
|
||||
@@ -1157,7 +1157,7 @@ checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb"
|
||||
|
||||
[[package]]
|
||||
name = "config"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"colored",
|
||||
"indexmap 2.11.4",
|
||||
@@ -1442,7 +1442,7 @@ checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476"
|
||||
|
||||
[[package]]
|
||||
name = "database"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-compression",
|
||||
@@ -1720,7 +1720,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "encoding"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytes",
|
||||
@@ -1762,7 +1762,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "environment"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"formatting",
|
||||
@@ -1772,7 +1772,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "environment_file"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"thiserror 2.0.17",
|
||||
]
|
||||
@@ -1868,7 +1868,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "formatting"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"serror",
|
||||
]
|
||||
@@ -2040,7 +2040,7 @@ checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
|
||||
|
||||
[[package]]
|
||||
name = "git"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"cache",
|
||||
@@ -2640,7 +2640,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "interpolate"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"komodo_client",
|
||||
@@ -2771,7 +2771,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "komodo_cli"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -2797,7 +2797,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "komodo_client"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async_timing_util",
|
||||
@@ -2833,7 +2833,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "komodo_core"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
@@ -2908,7 +2908,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "komodo_periphery"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
@@ -3031,7 +3031,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "logger"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"komodo_client",
|
||||
@@ -3303,7 +3303,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "noise"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
@@ -3811,7 +3811,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
|
||||
|
||||
[[package]]
|
||||
name = "periphery_client"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"derive_variants",
|
||||
@@ -4361,7 +4361,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "response"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -4683,7 +4683,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "secret_file"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"tokio",
|
||||
]
|
||||
@@ -5696,7 +5696,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "transport"
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
|
||||
@@ -8,7 +8,7 @@ members = [
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
version = "2.0.0-dev-47"
|
||||
version = "2.0.0-dev-48"
|
||||
edition = "2024"
|
||||
authors = ["mbecker20 <becker.maxh@gmail.com>"]
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
@@ -415,7 +415,7 @@ impl PeripheryConnection {
|
||||
}
|
||||
};
|
||||
match message {
|
||||
TransportMessage::Response(data) => match data.0.decode() {
|
||||
TransportMessage::Response(data) => match data.decode() {
|
||||
Ok(WithChannel {
|
||||
channel: channel_id,
|
||||
data,
|
||||
@@ -437,7 +437,7 @@ impl PeripheryConnection {
|
||||
warn!("Failed to read Response message | {e:#}");
|
||||
}
|
||||
},
|
||||
TransportMessage::Terminal(data) => match data.0.decode() {
|
||||
TransportMessage::Terminal(data) => match data.decode() {
|
||||
Ok(WithChannel {
|
||||
channel: channel_id,
|
||||
data,
|
||||
|
||||
@@ -7,12 +7,11 @@ use anyhow::anyhow;
|
||||
use arc_swap::ArcSwap;
|
||||
use cache::CloneCache;
|
||||
use encoding::{
|
||||
CastBytes as _, Decode as _, Encode as _, EncodedChannel,
|
||||
EncodedJsonMessage,
|
||||
CastBytes as _, Decode as _, Encode as _, WithChannel,
|
||||
};
|
||||
use noise::key::SpkiPublicKey;
|
||||
use periphery_client::transport::{
|
||||
EncodedTransportMessage, TransportMessage,
|
||||
EncodedRequestMessage, EncodedTransportMessage, TransportMessage,
|
||||
};
|
||||
use resolver_api::Resolve;
|
||||
use transport::{
|
||||
@@ -182,10 +181,10 @@ async fn handle_socket<W: Websocket>(
|
||||
};
|
||||
match message {
|
||||
TransportMessage::Request(message) => {
|
||||
handle_request(args.clone(), sender.clone(), message.0)
|
||||
handle_request(args.clone(), sender.clone(), message)
|
||||
}
|
||||
TransportMessage::Terminal(message) => {
|
||||
crate::terminal::handle_message(message.0).await
|
||||
crate::terminal::handle_message(message).await
|
||||
}
|
||||
// Rest shouldn't be received by Periphery
|
||||
_ => {}
|
||||
@@ -202,13 +201,13 @@ async fn handle_socket<W: Websocket>(
|
||||
fn handle_request(
|
||||
args: Arc<Args>,
|
||||
sender: Sender<EncodedTransportMessage>,
|
||||
message: EncodedChannel<EncodedJsonMessage>,
|
||||
message: EncodedRequestMessage,
|
||||
) {
|
||||
tokio::spawn(async move {
|
||||
let (channel, request): (_, PeripheryRequest) = match message
|
||||
.decode()
|
||||
.and_then(|res| Ok((res.channel, res.data.decode()?)))
|
||||
{
|
||||
let WithChannel {
|
||||
channel,
|
||||
data: request,
|
||||
}: WithChannel<PeripheryRequest> = match message.decode() {
|
||||
Ok(res) => res,
|
||||
Err(e) => {
|
||||
// TODO: handle:
|
||||
|
||||
@@ -7,10 +7,11 @@ use std::{
|
||||
use anyhow::{Context, anyhow};
|
||||
use bytes::Bytes;
|
||||
use cache::CloneCache;
|
||||
use encoding::{Decode as _, EncodedChannel, WithChannel};
|
||||
use encoding::{Decode as _, WithChannel};
|
||||
use komodo_client::{
|
||||
api::write::TerminalRecreateMode, entities::server::TerminalInfo,
|
||||
};
|
||||
use periphery_client::transport::EncodedTerminalMessage;
|
||||
use portable_pty::{CommandBuilder, PtySize, native_pty_system};
|
||||
use tokio::sync::{Mutex, broadcast, mpsc, oneshot};
|
||||
use tokio_util::sync::CancellationToken;
|
||||
@@ -96,7 +97,7 @@ impl TerminalTriggers {
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn handle_message(message: EncodedChannel<Vec<u8>>) {
|
||||
pub async fn handle_message(message: EncodedTerminalMessage) {
|
||||
let WithChannel {
|
||||
channel: channel_id,
|
||||
mut data,
|
||||
|
||||
@@ -15,9 +15,38 @@ impl Encode<EncodedTransportMessage> for LoginMessage {
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct EncodedLoginMessage(
|
||||
pub EncodedResult<InnerEncodedLoginMessage>,
|
||||
EncodedResult<InnerEncodedLoginMessage>,
|
||||
);
|
||||
|
||||
impl CastBytes for EncodedLoginMessage {
|
||||
fn from_vec(bytes: Vec<u8>) -> Self {
|
||||
Self(EncodedResult::from_vec(bytes))
|
||||
}
|
||||
fn into_vec(self) -> Vec<u8> {
|
||||
self.0.into_vec()
|
||||
}
|
||||
}
|
||||
|
||||
impl Encode<EncodedLoginMessage> for anyhow::Result<LoginMessage> {
|
||||
fn encode(self) -> EncodedLoginMessage {
|
||||
EncodedLoginMessage(self.map(LoginMessage::encode).encode())
|
||||
}
|
||||
}
|
||||
|
||||
impl Encode<EncodedLoginMessage>
|
||||
for EncodedResult<InnerEncodedLoginMessage>
|
||||
{
|
||||
fn encode(self) -> EncodedLoginMessage {
|
||||
EncodedLoginMessage(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl Decode<LoginMessage> for EncodedLoginMessage {
|
||||
fn decode(self) -> anyhow::Result<LoginMessage> {
|
||||
self.0.decode_into()
|
||||
}
|
||||
}
|
||||
|
||||
/// ```markdown
|
||||
/// | -- u8[] -- | --------- u8 ------------ |
|
||||
/// | <CONTENTS> | LoginMessageVariant |
|
||||
|
||||
@@ -7,6 +7,7 @@ use encoding::{
|
||||
|
||||
mod login;
|
||||
pub use login::*;
|
||||
use serde::de::DeserializeOwned;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct EncodedTransportMessage(Vec<u8>);
|
||||
@@ -20,18 +21,140 @@ impl CastBytes for EncodedTransportMessage {
|
||||
}
|
||||
}
|
||||
|
||||
// =================
|
||||
// REQUEST MESSAGE
|
||||
// =================
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct EncodedRequestMessage(
|
||||
pub EncodedChannel<EncodedJsonMessage>,
|
||||
);
|
||||
pub struct EncodedRequestMessage(EncodedChannel<EncodedJsonMessage>);
|
||||
|
||||
impl CastBytes for EncodedRequestMessage {
|
||||
fn from_vec(bytes: Vec<u8>) -> Self {
|
||||
Self(EncodedChannel::from_vec(bytes))
|
||||
}
|
||||
fn into_vec(self) -> Vec<u8> {
|
||||
self.0.into_vec()
|
||||
}
|
||||
}
|
||||
|
||||
impl Encode<EncodedRequestMessage>
|
||||
for WithChannel<EncodedJsonMessage>
|
||||
{
|
||||
fn encode(self) -> EncodedRequestMessage {
|
||||
EncodedRequestMessage(self.encode())
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: DeserializeOwned> Decode<WithChannel<T>>
|
||||
for EncodedRequestMessage
|
||||
{
|
||||
fn decode(self) -> anyhow::Result<WithChannel<T>> {
|
||||
let WithChannel { channel, data } = self.0.decode()?;
|
||||
let data = data.decode()?;
|
||||
Ok(WithChannel { channel, data })
|
||||
}
|
||||
}
|
||||
|
||||
// ==================
|
||||
// RESPONSE MESSAGE
|
||||
// ==================
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct EncodedResponseMessage(
|
||||
pub EncodedChannel<EncodedOption<EncodedResult<EncodedJsonMessage>>>,
|
||||
EncodedChannel<EncodedOption<EncodedResult<EncodedJsonMessage>>>,
|
||||
);
|
||||
|
||||
impl CastBytes for EncodedResponseMessage {
|
||||
fn from_vec(bytes: Vec<u8>) -> Self {
|
||||
Self(EncodedChannel::from_vec(bytes))
|
||||
}
|
||||
fn into_vec(self) -> Vec<u8> {
|
||||
self.0.into_vec()
|
||||
}
|
||||
}
|
||||
|
||||
impl Encode<EncodedResponseMessage>
|
||||
for WithChannel<Option<anyhow::Result<EncodedJsonMessage>>>
|
||||
{
|
||||
fn encode(self) -> EncodedResponseMessage {
|
||||
let data = self
|
||||
.map(|data| data.map(|data| data.encode()).encode())
|
||||
.encode();
|
||||
EncodedResponseMessage(data)
|
||||
}
|
||||
}
|
||||
|
||||
impl Encode<EncodedResponseMessage>
|
||||
for WithChannel<EncodedResult<EncodedJsonMessage>>
|
||||
{
|
||||
fn encode(self) -> EncodedResponseMessage {
|
||||
let data = self.map(|data| Some(data).encode()).encode();
|
||||
EncodedResponseMessage(data)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: DeserializeOwned>
|
||||
Decode<WithChannel<Option<anyhow::Result<T>>>>
|
||||
for EncodedResponseMessage
|
||||
{
|
||||
fn decode(
|
||||
self,
|
||||
) -> anyhow::Result<WithChannel<Option<anyhow::Result<T>>>> {
|
||||
let WithChannel { channel, data } = self.0.decode()?;
|
||||
let data = data
|
||||
.decode()?
|
||||
.map(|data| data.decode().and_then(|data| data.decode()));
|
||||
Ok(WithChannel { channel, data })
|
||||
}
|
||||
}
|
||||
|
||||
impl
|
||||
Decode<
|
||||
WithChannel<EncodedOption<EncodedResult<EncodedJsonMessage>>>,
|
||||
> for EncodedResponseMessage
|
||||
{
|
||||
fn decode(
|
||||
self,
|
||||
) -> anyhow::Result<
|
||||
WithChannel<EncodedOption<EncodedResult<EncodedJsonMessage>>>,
|
||||
> {
|
||||
self.0.decode()
|
||||
}
|
||||
}
|
||||
|
||||
// ==================
|
||||
// TERMINAL MESSAGE
|
||||
// ==================
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct EncodedTerminalMessage(pub EncodedChannel<Vec<u8>>);
|
||||
pub struct EncodedTerminalMessage(EncodedChannel<Vec<u8>>);
|
||||
|
||||
impl CastBytes for EncodedTerminalMessage {
|
||||
fn from_vec(bytes: Vec<u8>) -> Self {
|
||||
Self(EncodedChannel::from_vec(bytes))
|
||||
}
|
||||
fn into_vec(self) -> Vec<u8> {
|
||||
self.0.into_vec()
|
||||
}
|
||||
}
|
||||
|
||||
impl Encode<EncodedTerminalMessage> for WithChannel<Vec<u8>> {
|
||||
fn encode(self) -> EncodedTerminalMessage {
|
||||
EncodedTerminalMessage(self.encode())
|
||||
}
|
||||
}
|
||||
|
||||
impl Decode<WithChannel<Vec<u8>>> for EncodedTerminalMessage {
|
||||
fn decode(self) -> anyhow::Result<WithChannel<Vec<u8>>> {
|
||||
let WithChannel { channel, data } = self.0.decode()?;
|
||||
let data = data.decode()?;
|
||||
Ok(WithChannel { channel, data })
|
||||
}
|
||||
}
|
||||
|
||||
// ===================
|
||||
// TRANSPORT MESSAGE
|
||||
// ===================
|
||||
|
||||
#[derive(Debug, EnumVariants)]
|
||||
#[variant_derive(Debug, Clone, Copy)]
|
||||
@@ -46,7 +169,7 @@ impl Encode<EncodedTransportMessage> for TransportMessage {
|
||||
fn encode(self) -> EncodedTransportMessage {
|
||||
let variant_byte = self.extract_variant().as_byte();
|
||||
let mut bytes = match self {
|
||||
TransportMessage::Login(data) => data.0.into_vec(),
|
||||
TransportMessage::Login(data) => data.into_vec(),
|
||||
TransportMessage::Request(data) => data.0.into_vec(),
|
||||
TransportMessage::Response(data) => data.0.into_vec(),
|
||||
TransportMessage::Terminal(data) => data.0.into_vec(),
|
||||
@@ -67,9 +190,9 @@ impl<T: From<TransportMessage>> Decode<T>
|
||||
use TransportMessageVariant::*;
|
||||
let message =
|
||||
match TransportMessageVariant::from_byte(variant_byte)? {
|
||||
Login => TransportMessage::Login(EncodedLoginMessage(
|
||||
EncodedResult::from_vec(bytes),
|
||||
)),
|
||||
Login => TransportMessage::Login(
|
||||
EncodedLoginMessage::from_vec(bytes),
|
||||
),
|
||||
Request => TransportMessage::Request(EncodedRequestMessage(
|
||||
EncodedChannel::from_vec(bytes),
|
||||
)),
|
||||
@@ -84,6 +207,10 @@ impl<T: From<TransportMessage>> Decode<T>
|
||||
}
|
||||
}
|
||||
|
||||
// ===================
|
||||
// DECODED TRANSPORT
|
||||
// ===================
|
||||
|
||||
pub enum DecodedTransportMessage {
|
||||
Login(anyhow::Result<LoginMessage>),
|
||||
Request(WithChannel<EncodedJsonMessage>),
|
||||
@@ -97,9 +224,7 @@ impl Encode<TransportMessage> for DecodedTransportMessage {
|
||||
fn encode(self) -> TransportMessage {
|
||||
use DecodedTransportMessage::*;
|
||||
match self {
|
||||
Login(res) => TransportMessage::Login(EncodedLoginMessage(
|
||||
res.map(LoginMessage::encode).encode(),
|
||||
)),
|
||||
Login(res) => TransportMessage::Login(res.encode()),
|
||||
Request(data) => TransportMessage::Request(
|
||||
EncodedRequestMessage(data.encode()),
|
||||
),
|
||||
@@ -130,9 +255,7 @@ impl<T: From<DecodedTransportMessage>> Decode<T>
|
||||
fn decode(self) -> anyhow::Result<T> {
|
||||
let message = match self {
|
||||
TransportMessage::Login(encoded_result) => {
|
||||
let res =
|
||||
encoded_result.0.decode().and_then(|msg| msg.decode());
|
||||
DecodedTransportMessage::Login(res)
|
||||
DecodedTransportMessage::Login(encoded_result.decode())
|
||||
}
|
||||
TransportMessage::Request(encoded_channel) => {
|
||||
DecodedTransportMessage::Request(encoded_channel.0.decode()?)
|
||||
|
||||
@@ -4,8 +4,7 @@ use encoding::{
|
||||
};
|
||||
use futures_util::FutureExt;
|
||||
use periphery_client::transport::{
|
||||
DecodedTransportMessage, EncodedResponseMessage,
|
||||
EncodedTransportMessage, TransportMessage,
|
||||
DecodedTransportMessage, EncodedTransportMessage, TransportMessage,
|
||||
};
|
||||
use serde::Serialize;
|
||||
use tokio::sync::{Mutex, MutexGuard, mpsc};
|
||||
@@ -109,13 +108,13 @@ impl Sender<EncodedTransportMessage> {
|
||||
channel: Uuid,
|
||||
response: EncodedResult<EncodedJsonMessage>,
|
||||
) -> anyhow::Result<()> {
|
||||
let message = TransportMessage::Response(EncodedResponseMessage(
|
||||
let message = TransportMessage::Response(
|
||||
WithChannel {
|
||||
channel,
|
||||
data: Some(response).encode(),
|
||||
data: response,
|
||||
}
|
||||
.encode(),
|
||||
));
|
||||
);
|
||||
self.send_message(message).await
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
use anyhow::anyhow;
|
||||
use encoding::{Decode as _, Encode as _};
|
||||
use noise::key::SpkiPublicKey;
|
||||
use periphery_client::transport::{
|
||||
EncodedLoginMessage, LoginMessage, TransportMessage,
|
||||
};
|
||||
use periphery_client::transport::{LoginMessage, TransportMessage};
|
||||
|
||||
use crate::{
|
||||
auth::AUTH_TIMEOUT,
|
||||
@@ -15,8 +13,7 @@ pub trait LoginWebsocketExt: WebsocketExt {
|
||||
&mut self,
|
||||
e: &anyhow::Error,
|
||||
) -> impl Future<Output = anyhow::Result<()>> + Send {
|
||||
let message =
|
||||
TransportMessage::Login(EncodedLoginMessage(e.encode()));
|
||||
let message = TransportMessage::Login(e.encode_into());
|
||||
self.send(message)
|
||||
}
|
||||
|
||||
@@ -31,7 +28,7 @@ pub trait LoginWebsocketExt: WebsocketExt {
|
||||
"Expected Login message, got other message type"
|
||||
));
|
||||
};
|
||||
message.0.decode_into()
|
||||
message.decode()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,7 @@ use encoding::{
|
||||
EncodedResult, JsonMessage, WithChannel,
|
||||
};
|
||||
use periphery_client::transport::{
|
||||
DecodedTransportMessage, EncodedResponseMessage,
|
||||
EncodedTransportMessage, TransportMessage,
|
||||
DecodedTransportMessage, EncodedTransportMessage, TransportMessage,
|
||||
};
|
||||
use serde::Serialize;
|
||||
use tokio_util::sync::CancellationToken;
|
||||
@@ -145,13 +144,13 @@ pub trait WebsocketSenderExt: WebsocketSender + Send {
|
||||
channel: Uuid,
|
||||
response: EncodedResult<EncodedJsonMessage>,
|
||||
) -> impl Future<Output = anyhow::Result<()>> + Send {
|
||||
let message = TransportMessage::Response(EncodedResponseMessage(
|
||||
let message = TransportMessage::Response(
|
||||
WithChannel {
|
||||
channel,
|
||||
data: Some(response).encode(),
|
||||
data: response,
|
||||
}
|
||||
.encode(),
|
||||
));
|
||||
);
|
||||
self.send(message)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user