#![forbid(missing_docs)]
pub use execute::{execute, execute_directly, example};
#[cfg(feature = "getopts")]
pub use execute::execute_from_args;
pub use order::PartialOrder;
pub use timely_communication::Config as CommunicationConfig;
pub use worker::Config as WorkerConfig;
pub use execute::Config as Config;
pub use timely_container::Accountable;
pub mod container {
pub use timely_container::*;
}
pub mod communication {
pub use timely_communication::*;
}
pub mod bytes {
pub use timely_bytes::*;
}
pub mod logging_core {
pub use timely_logging::*;
}
pub mod worker;
pub mod progress;
pub mod dataflow;
pub mod synchronization;
pub mod execute;
pub mod order;
pub mod logging;
pub mod scheduling;
pub trait Container: Accountable + Default + 'static { }
impl<C: Accountable + Default + 'static> Container for C { }
pub trait ContainerBuilder: timely_container::ContainerBuilder<Container: Container> + Default + 'static {}
impl<CB: timely_container::ContainerBuilder<Container: Container> + Default + 'static> ContainerBuilder for CB {}
pub use encoding::Data as ExchangeData;
#[doc = include_str!("../../README.md")]
#[cfg(doctest)]
pub struct ReadmeDoctests;
pub use encoding::Bincode;
mod encoding {
use std::any::Any;
use serde::{Serialize, Deserialize};
use timely_bytes::arc::Bytes;
use timely_communication::Bytesable;
pub trait Data : Send+Any+Serialize+for<'a>Deserialize<'a> { }
impl<T: Send+Any+Serialize+for<'a>Deserialize<'a>> Data for T { }
#[derive(Clone)]
pub struct Bincode<T> {
pub payload: T,
}
impl<T> From<T> for Bincode<T> {
fn from(payload: T) -> Self {
Self { payload }
}
}
impl<T: Data> Bytesable for Bincode<T> {
fn from_bytes(bytes: Bytes) -> Self {
let typed = ::bincode::deserialize(&bytes[..]).expect("bincode::deserialize() failed");
let typed_size = ::bincode::serialized_size(&typed).expect("bincode::serialized_size() failed") as usize;
assert_eq!(bytes.len(), (typed_size + 7) & !7);
Bincode { payload: typed }
}
fn length_in_bytes(&self) -> usize {
let typed_size = ::bincode::serialized_size(&self.payload).expect("bincode::serialized_size() failed") as usize;
(typed_size + 7) & !7
}
fn into_bytes<W: ::std::io::Write>(&self, mut writer: &mut W) {
let typed_size = ::bincode::serialized_size(&self.payload).expect("bincode::serialized_size() failed") as usize;
let typed_slop = ((typed_size + 7) & !7) - typed_size;
::bincode::serialize_into(&mut writer, &self.payload).expect("bincode::serialize_into() failed");
writer.write_all(&[0u8; 8][..typed_slop]).unwrap();
}
}
impl<T> ::std::ops::Deref for Bincode<T> {
type Target = T;
fn deref(&self) -> &Self::Target {
&self.payload
}
}
impl<T> ::std::ops::DerefMut for Bincode<T> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.payload
}
}
}