mirror of
https://github.com/hexedtech/codemp.git
synced 2024-11-22 15:24:48 +01:00
fix: serialize uuid as string when sending
This commit is contained in:
parent
97061524e7
commit
164e9887b8
3 changed files with 7 additions and 8 deletions
|
@ -6,5 +6,5 @@ package user;
|
||||||
// payload identifying user
|
// payload identifying user
|
||||||
message UserIdentity {
|
message UserIdentity {
|
||||||
// user identifier
|
// user identifier
|
||||||
required bytes id = 1; //since uuid is 8 bytes we prefer to just send the raw bytes instead of string
|
required string id = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ impl Controller<CursorEvent> for CursorController {
|
||||||
std::mem::swap(&mut cursor.start, &mut cursor.end);
|
std::mem::swap(&mut cursor.start, &mut cursor.end);
|
||||||
}
|
}
|
||||||
Ok(self.op.send(CursorEvent {
|
Ok(self.op.send(CursorEvent {
|
||||||
user: UserIdentity { id: self.user_id.as_bytes().to_vec() },
|
user: UserIdentity { id: self.user_id.to_string() },
|
||||||
position: cursor,
|
position: cursor,
|
||||||
})?)
|
})?)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use std::{collections::{BTreeMap, BTreeSet}, sync::Arc};
|
use std::{collections::{BTreeMap, BTreeSet}, str::FromStr, sync::Arc};
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
use crate::{
|
use crate::{
|
||||||
|
@ -25,8 +25,7 @@ impl From<Uuid> for UserInfo {
|
||||||
|
|
||||||
impl From<UserIdentity> for Uuid {
|
impl From<UserIdentity> for Uuid {
|
||||||
fn from(uid: UserIdentity) -> Uuid {
|
fn from(uid: UserIdentity) -> Uuid {
|
||||||
let b: [u8; 16] = uid.id.try_into().expect("expected an uuid");
|
Uuid::from_str(&uid.id).expect("expected an uuid")
|
||||||
Uuid::from_bytes(b)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,9 +88,9 @@ impl Workspace {
|
||||||
/// [crate::api::Controller::recv] to exchange [crate::api::TextChange]
|
/// [crate::api::Controller::recv] to exchange [crate::api::TextChange]
|
||||||
pub async fn attach(&mut self, path: &str) -> crate::Result<Arc<buffer::Controller>> {
|
pub async fn attach(&mut self, path: &str) -> crate::Result<Arc<buffer::Controller>> {
|
||||||
let mut worskspace_client = self.services.workspace.clone();
|
let mut worskspace_client = self.services.workspace.clone();
|
||||||
self.token.send(worskspace_client.attach(
|
let mut request = tonic::Request::new(AttachRequest { path: path.to_string() });
|
||||||
tonic::Request::new(AttachRequest { path: path.to_string() })
|
request.metadata_mut().insert("path", tonic::metadata::MetadataValue::try_from(path).expect("could not represent path as byte sequence"));
|
||||||
).await?.into_inner())?;
|
self.token.send(worskspace_client.attach(request).await?.into_inner())?;
|
||||||
|
|
||||||
let (tx, rx) = mpsc::channel(10);
|
let (tx, rx) = mpsc::channel(10);
|
||||||
let stream = self.services.buffer.clone()
|
let stream = self.services.buffer.clone()
|
||||||
|
|
Loading…
Reference in a new issue