bump rust types (#321)
* get rid of noisy log Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix types in rust Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
@ -575,7 +575,6 @@ export class EngineCommandManager {
|
||||
if (commandStr === undefined) {
|
||||
throw new Error('commandStr is undefined')
|
||||
}
|
||||
console.log('sendModelingCommandFromWasm', id, rangeStr, commandStr)
|
||||
const command: EngineCommand = JSON.parse(commandStr)
|
||||
const range: SourceRange = JSON.parse(rangeStr)
|
||||
|
||||
|
4
src/wasm-lib/Cargo.lock
generated
4
src/wasm-lib/Cargo.lock
generated
@ -419,9 +419,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "kittycad"
|
||||
version = "0.2.18"
|
||||
version = "0.2.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "265907330acc7c97b6b2de171554e1354ed300ced20751fc0e40c88117a2d597"
|
||||
checksum = "0443a9f76cee80d5a43d076028d3ce39d2f6f6b66fc5c1a0ce24f8d7caf733b9"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
use anyhow::Result;
|
||||
use futures::{SinkExt, StreamExt};
|
||||
use kittycad::types::{WebSocketMessages, WebSocketResponses};
|
||||
use kittycad::types::{OkWebSocketResponseData, WebSocketRequest, WebSocketResponse};
|
||||
use tokio_tungstenite::tungstenite::Message as WsMsg;
|
||||
|
||||
use crate::errors::{KclError, KclErrorDetails};
|
||||
@ -35,14 +35,14 @@ pub struct TcpRead {
|
||||
}
|
||||
|
||||
impl TcpRead {
|
||||
pub async fn read(&mut self) -> Result<WebSocketResponses> {
|
||||
pub async fn read(&mut self) -> Result<WebSocketResponse> {
|
||||
let msg = self.stream.next().await.unwrap()?;
|
||||
let msg = match msg {
|
||||
WsMsg::Text(text) => text,
|
||||
WsMsg::Binary(bin) => bincode::deserialize(&bin)?,
|
||||
other => anyhow::bail!("Unexpected websocket message from server: {}", other),
|
||||
};
|
||||
let msg = serde_json::from_str::<WebSocketResponses>(&msg)?;
|
||||
let msg = serde_json::from_str::<WebSocketResponse>(&msg)?;
|
||||
Ok(msg)
|
||||
}
|
||||
}
|
||||
@ -68,19 +68,26 @@ impl EngineConnection {
|
||||
|
||||
let tcp_read_handle = tokio::spawn(async move {
|
||||
// Get Websocket messages from API server
|
||||
while let Ok(msg) = tcp_read.read().await {
|
||||
while let Ok(ws_resp) = tcp_read.read().await {
|
||||
if !ws_resp.success {
|
||||
println!("got ws errors: {:?}", ws_resp.errors);
|
||||
continue;
|
||||
}
|
||||
|
||||
if let Some(msg) = ws_resp.resp {
|
||||
match msg {
|
||||
WebSocketResponses::IceServerInfo { ice_servers } => {
|
||||
OkWebSocketResponseData::IceServerInfo { ice_servers } => {
|
||||
println!("got ice server info: {:?}", ice_servers);
|
||||
}
|
||||
WebSocketResponses::SdpAnswer { answer } => {
|
||||
OkWebSocketResponseData::SdpAnswer { answer } => {
|
||||
println!("got sdp answer: {:?}", answer);
|
||||
}
|
||||
WebSocketResponses::TrickleIce { candidate } => {
|
||||
OkWebSocketResponseData::TrickleIce { candidate } => {
|
||||
println!("got trickle ice: {:?}", candidate);
|
||||
}
|
||||
WebSocketResponses::Modeling { .. } => {}
|
||||
WebSocketResponses::Export { .. } => {}
|
||||
OkWebSocketResponseData::Modeling { .. } => {}
|
||||
OkWebSocketResponseData::Export { .. } => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -91,7 +98,7 @@ impl EngineConnection {
|
||||
})
|
||||
}
|
||||
|
||||
pub async fn tcp_send(&mut self, msg: WebSocketMessages) -> Result<()> {
|
||||
pub async fn tcp_send(&mut self, msg: WebSocketRequest) -> Result<()> {
|
||||
let msg = serde_json::to_string(&msg)?;
|
||||
self.tcp_write.send(WsMsg::Text(msg)).await?;
|
||||
|
||||
@ -105,7 +112,7 @@ impl EngineConnection {
|
||||
cmd: kittycad::types::ModelingCmd,
|
||||
) -> Result<(), KclError> {
|
||||
futures::executor::block_on(
|
||||
self.tcp_send(WebSocketMessages::ModelingCmdReq { cmd, cmd_id: id }),
|
||||
self.tcp_send(WebSocketRequest::ModelingCmdReq { cmd, cmd_id: id }),
|
||||
)
|
||||
.map_err(|e| {
|
||||
KclError::Engine(KclErrorDetails {
|
||||
|
@ -2,7 +2,7 @@
|
||||
//! engine.
|
||||
|
||||
use anyhow::Result;
|
||||
use kittycad::types::WebSocketMessages;
|
||||
use kittycad::types::WebSocketRequest;
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
use crate::errors::{KclError, KclErrorDetails};
|
||||
@ -43,7 +43,7 @@ impl EngineConnection {
|
||||
source_ranges: vec![source_range],
|
||||
})
|
||||
})?;
|
||||
let ws_msg = WebSocketMessages::ModelingCmdReq { cmd, cmd_id: id };
|
||||
let ws_msg = WebSocketRequest::ModelingCmdReq { cmd, cmd_id: id };
|
||||
let cmd_str = serde_json::to_string(&ws_msg).map_err(|e| {
|
||||
KclError::Engine(KclErrorDetails {
|
||||
message: format!("Failed to serialize modeling command: {:?}", e),
|
||||
|
@ -5,9 +5,16 @@ use wasm_bindgen::prelude::*;
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn deserialize_files(data: &[u8]) -> Result<JsValue, JsError> {
|
||||
let ws_resp: kittycad::types::WebSocketResponses = bincode::deserialize(data)?;
|
||||
let ws_resp: kittycad::types::WebSocketResponse = bincode::deserialize(data)?;
|
||||
|
||||
if let kittycad::types::WebSocketResponses::Export { files } = ws_resp {
|
||||
if !ws_resp.success {
|
||||
return Err(JsError::new(&format!(
|
||||
"Server returned error: {:?}",
|
||||
ws_resp.errors
|
||||
)));
|
||||
}
|
||||
|
||||
if let Some(kittycad::types::OkWebSocketResponseData::Export { files }) = ws_resp.resp {
|
||||
return Ok(JsValue::from_serde(&files)?);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user