Skip to content

Commit 7d0c49b

Browse files
committed
Bump serde to 1.0, bincode to 0.8 and bump version
1 parent 479b4b3 commit 7d0c49b

File tree

4 files changed

+31
-33
lines changed

4 files changed

+31
-33
lines changed

Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ipc-channel"
3-
version = "0.7.2"
3+
version = "0.8.0"
44
description = "A multiprocess drop-in replacement for Rust channels"
55
authors = ["The Servo Project Developers"]
66
license = "MIT/Apache-2.0"
@@ -12,12 +12,12 @@ memfd = ["syscall"]
1212
unstable = []
1313

1414
[dependencies]
15-
bincode = "1.0.0-alpha2"
15+
bincode = "0.8"
1616
lazy_static = "0.2"
1717
libc = "0.2.12"
1818
rand = "0.3"
19-
serde = "0.9"
20-
uuid = {version = "0.4", features = ["v4"]}
19+
serde = { version="1.0", features=["rc"] }
20+
uuid = {version = "0.5", features = ["v4"]}
2121
fnv = "1.0.3"
2222

2323
[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]

src/ipc.rs

+23-25
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ thread_local! {
3737
}
3838

3939
pub fn channel<T>() -> Result<(IpcSender<T>, IpcReceiver<T>),Error>
40-
where T: Deserialize + Serialize {
40+
where T: for<'de> Deserialize<'de> + Serialize {
4141
let (os_sender, os_receiver) = try!(platform::channel());
4242
let ipc_receiver = IpcReceiver {
4343
os_receiver: os_receiver,
@@ -62,12 +62,12 @@ pub fn bytes_channel() -> Result<(IpcBytesSender, IpcBytesReceiver),Error> {
6262
}
6363

6464
#[derive(Debug)]
65-
pub struct IpcReceiver<T> where T: Deserialize + Serialize {
65+
pub struct IpcReceiver<T> where T: for<'de> Deserialize<'de> + Serialize {
6666
os_receiver: OsIpcReceiver,
6767
phantom: PhantomData<T>,
6868
}
6969

70-
impl<T> IpcReceiver<T> where T: Deserialize + Serialize {
70+
impl<T> IpcReceiver<T> where T: for<'de> Deserialize<'de> + Serialize {
7171
pub fn recv(&self) -> Result<T, bincode::Error> {
7272
let (data, os_ipc_channels, os_ipc_shared_memory_regions) = try!(self.os_receiver.recv());
7373
OpaqueIpcMessage::new(data, os_ipc_channels, os_ipc_shared_memory_regions).to()
@@ -86,8 +86,8 @@ impl<T> IpcReceiver<T> where T: Deserialize + Serialize {
8686
}
8787
}
8888

89-
impl<T> Deserialize for IpcReceiver<T> where T: Deserialize + Serialize {
90-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer {
89+
impl<'de, T> Deserialize<'de> for IpcReceiver<T> where T: for<'dde> Deserialize<'dde> + Serialize {
90+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
9191
let index: usize = try!(Deserialize::deserialize(deserializer));
9292
let os_receiver =
9393
OS_IPC_CHANNELS_FOR_DESERIALIZATION.with(|os_ipc_channels_for_deserialization| {
@@ -102,7 +102,7 @@ impl<T> Deserialize for IpcReceiver<T> where T: Deserialize + Serialize {
102102
}
103103
}
104104

105-
impl<T> Serialize for IpcReceiver<T> where T: Deserialize + Serialize {
105+
impl<T> Serialize for IpcReceiver<T> where T: for<'de> Deserialize<'de> + Serialize {
106106
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {
107107
let index = OS_IPC_CHANNELS_FOR_SERIALIZATION.with(|os_ipc_channels_for_serialization| {
108108
let mut os_ipc_channels_for_serialization =
@@ -173,8 +173,8 @@ impl<T> IpcSender<T> where T: Serialize {
173173
}
174174
}
175175

176-
impl<T> Deserialize for IpcSender<T> where T: Serialize {
177-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer {
176+
impl<'de, T> Deserialize<'de> for IpcSender<T> where T: Serialize {
177+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
178178
let os_sender = try!(deserialize_os_ipc_sender(deserializer));
179179
Ok(IpcSender {
180180
os_sender: os_sender,
@@ -201,7 +201,7 @@ impl IpcReceiverSet {
201201
}
202202

203203
pub fn add<T>(&mut self, receiver: IpcReceiver<T>) -> Result<u64,Error>
204-
where T: Deserialize + Serialize {
204+
where T: for<'de> Deserialize<'de> + Serialize {
205205
Ok(try!(self.os_receiver_set.add(receiver.os_receiver)))
206206
}
207207

@@ -249,8 +249,8 @@ impl Deref for IpcSharedMemory {
249249
}
250250
}
251251

252-
impl Deserialize for IpcSharedMemory {
253-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer {
252+
impl<'de> Deserialize<'de> for IpcSharedMemory {
253+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
254254
let index: usize = try!(Deserialize::deserialize(deserializer));
255255
let os_shared_memory = OS_IPC_SHARED_MEMORY_REGIONS_FOR_DESERIALIZATION.with(
256256
|os_ipc_shared_memory_regions_for_deserialization| {
@@ -342,17 +342,15 @@ impl OpaqueIpcMessage {
342342
}
343343
}
344344

345-
pub fn to<T>(mut self) -> Result<T, bincode::Error> where T: Deserialize + Serialize {
345+
pub fn to<T>(mut self) -> Result<T, bincode::Error> where T: for<'de> Deserialize<'de> + Serialize {
346346
OS_IPC_CHANNELS_FOR_DESERIALIZATION.with(|os_ipc_channels_for_deserialization| {
347347
OS_IPC_SHARED_MEMORY_REGIONS_FOR_DESERIALIZATION.with(
348348
|os_ipc_shared_memory_regions_for_deserialization| {
349349
mem::swap(&mut *os_ipc_channels_for_deserialization.borrow_mut(),
350350
&mut self.os_ipc_channels);
351351
mem::swap(&mut *os_ipc_shared_memory_regions_for_deserialization.borrow_mut(),
352352
&mut self.os_ipc_shared_memory_regions);
353-
let mut data = &*self.data;
354-
let mut deserializer = bincode::Deserializer::new(&mut data, bincode::Infinite);
355-
let result = Deserialize::deserialize(&mut deserializer);
353+
let result = bincode::deserialize(&self.data[..]);
356354
mem::swap(&mut *os_ipc_shared_memory_regions_for_deserialization.borrow_mut(),
357355
&mut self.os_ipc_shared_memory_regions);
358356
mem::swap(&mut *os_ipc_channels_for_deserialization.borrow_mut(),
@@ -371,16 +369,16 @@ pub struct OpaqueIpcSender {
371369
}
372370

373371
impl OpaqueIpcSender {
374-
pub fn to<T>(self) -> IpcSender<T> where T: Deserialize + Serialize {
372+
pub fn to<'de, T>(self) -> IpcSender<T> where T: Deserialize<'de> + Serialize {
375373
IpcSender {
376374
os_sender: self.os_sender,
377375
phantom: PhantomData,
378376
}
379377
}
380378
}
381379

382-
impl Deserialize for OpaqueIpcSender {
383-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer {
380+
impl<'de> Deserialize<'de> for OpaqueIpcSender {
381+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
384382
let os_sender = try!(deserialize_os_ipc_sender(deserializer));
385383
Ok(OpaqueIpcSender {
386384
os_sender: os_sender,
@@ -404,7 +402,7 @@ pub struct IpcOneShotServer<T> {
404402
phantom: PhantomData<T>,
405403
}
406404

407-
impl<T> IpcOneShotServer<T> where T: Deserialize + Serialize {
405+
impl<T> IpcOneShotServer<T> where T: for<'de> Deserialize<'de> + Serialize {
408406
pub fn new() -> Result<(IpcOneShotServer<T>, String),Error> {
409407
let (os_server, name) = try!(OsIpcOneShotServer::new());
410408
Ok((IpcOneShotServer {
@@ -446,8 +444,8 @@ impl IpcBytesReceiver {
446444
}
447445
}
448446

449-
impl Deserialize for IpcBytesReceiver {
450-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer {
447+
impl<'de> Deserialize<'de> for IpcBytesReceiver {
448+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
451449
let index: usize = try!(Deserialize::deserialize(deserializer));
452450
let os_receiver =
453451
OS_IPC_CHANNELS_FOR_DESERIALIZATION.with(|os_ipc_channels_for_deserialization| {
@@ -488,8 +486,8 @@ impl Clone for IpcBytesSender {
488486
}
489487
}
490488

491-
impl Deserialize for IpcBytesSender {
492-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer {
489+
impl<'de> Deserialize<'de> for IpcBytesSender {
490+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
493491
let os_sender = try!(deserialize_os_ipc_sender(deserializer));
494492
Ok(IpcBytesSender {
495493
os_sender: os_sender,
@@ -522,8 +520,8 @@ fn serialize_os_ipc_sender<S>(os_ipc_sender: &OsIpcSender, serializer: S)
522520
index.serialize(serializer)
523521
}
524522

525-
fn deserialize_os_ipc_sender<D>(deserializer: D)
526-
-> Result<OsIpcSender, D::Error> where D: Deserializer {
523+
fn deserialize_os_ipc_sender<'de, D>(deserializer: D)
524+
-> Result<OsIpcSender, D::Error> where D: Deserializer<'de> {
527525
let index: usize = try!(Deserialize::deserialize(deserializer));
528526
OS_IPC_CHANNELS_FOR_DESERIALIZATION.with(|os_ipc_channels_for_deserialization| {
529527
// FIXME(pcwalton): This could panic if the data was corrupt and the index was out of

src/router.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ impl RouterProxy {
4747
pub fn route_ipc_receiver_to_mpsc_sender<T>(&self,
4848
ipc_receiver: IpcReceiver<T>,
4949
mpsc_sender: Sender<T>)
50-
where T: Deserialize +
50+
where T: for<'de> Deserialize<'de> +
5151
Serialize +
5252
Send +
5353
'static {
@@ -60,7 +60,7 @@ impl RouterProxy {
6060
/// use of a `Router`.
6161
pub fn route_ipc_receiver_to_new_mpsc_receiver<T>(&self, ipc_receiver: IpcReceiver<T>)
6262
-> Receiver<T>
63-
where T: Deserialize +
63+
where T: for<'de> Deserialize<'de> +
6464
Serialize +
6565
Send +
6666
'static {

src/test.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,9 @@ impl Serialize for HasWeirdSerializer {
406406
}
407407
}
408408

409-
impl Deserialize for HasWeirdSerializer {
409+
impl<'de> Deserialize<'de> for HasWeirdSerializer {
410410
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
411-
where D: Deserializer
411+
where D: Deserializer<'de>
412412
{
413413
Ok(HasWeirdSerializer(try!(Deserialize::deserialize(deserializer))))
414414
}

0 commit comments

Comments
 (0)