mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00
Rename crate to tokio
This commit is contained in:
parent
25f30c91c4
commit
36aaaa1520
14
Cargo.toml
14
Cargo.toml
@ -1,11 +1,11 @@
|
||||
[package]
|
||||
name = "tokio-core"
|
||||
version = "0.1.10"
|
||||
authors = ["Alex Crichton <alex@alexcrichton.com>"]
|
||||
name = "tokio"
|
||||
version = "0.1.0"
|
||||
authors = ["Tokio Authors <authors@tokio.rs>"]
|
||||
license = "MIT/Apache-2.0"
|
||||
repository = "https://github.com/tokio-rs/tokio-core"
|
||||
repository = "https://github.com/tokio-rs/tokio"
|
||||
homepage = "https://tokio.rs"
|
||||
documentation = "https://docs.rs/tokio-core/0.1"
|
||||
documentation = "https://docs.rs/tokio/0.1"
|
||||
description = """
|
||||
Core I/O and event loop primitives for asynchronous I/O in Rust. Foundation for
|
||||
the rest of the tokio crates.
|
||||
@ -13,8 +13,8 @@ the rest of the tokio crates.
|
||||
categories = ["asynchronous"]
|
||||
|
||||
[badges]
|
||||
travis-ci = { repository = "tokio-rs/tokio-core" }
|
||||
appveyor = { repository = "alexcrichton/tokio-core" }
|
||||
travis-ci = { repository = "tokio-rs/tokio" }
|
||||
appveyor = { repository = "alexcrichton/tokio" }
|
||||
|
||||
[dependencies]
|
||||
bytes = "0.4"
|
||||
|
@ -22,7 +22,7 @@ tokio-core = "0.1"
|
||||
Next, add this to your crate:
|
||||
|
||||
```rust
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
```
|
||||
|
||||
You can find extensive documentation and examples about how to use this crate
|
||||
|
@ -4,7 +4,7 @@
|
||||
extern crate test;
|
||||
extern crate futures;
|
||||
#[macro_use]
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
|
||||
use std::io;
|
||||
use std::net::SocketAddr;
|
||||
@ -14,8 +14,8 @@ use futures::sync::oneshot;
|
||||
use futures::sync::mpsc;
|
||||
use futures::{Future, Poll, Sink, Stream};
|
||||
use test::Bencher;
|
||||
use tokio_core::net::UdpSocket;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::UdpSocket;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
/// UDP echo server
|
||||
struct EchoServer {
|
||||
@ -61,7 +61,7 @@ fn udp_echo_latency(b: &mut Bencher) {
|
||||
let mut l = Core::new().unwrap();
|
||||
let handle = l.handle();
|
||||
|
||||
let socket = tokio_core::net::UdpSocket::bind(&any_addr, &handle).unwrap();
|
||||
let socket = tokio::net::UdpSocket::bind(&any_addr, &handle).unwrap();
|
||||
tx.complete(socket.local_addr().unwrap());
|
||||
|
||||
let server = EchoServer::new(socket);
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![feature(test)]
|
||||
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
|
||||
#[macro_use]
|
||||
extern crate tokio_io;
|
||||
@ -10,8 +10,8 @@ pub extern crate test;
|
||||
|
||||
mod prelude {
|
||||
pub use futures::*;
|
||||
pub use tokio_core::reactor::Core;
|
||||
pub use tokio_core::net::{TcpListener, TcpStream};
|
||||
pub use tokio::reactor::Core;
|
||||
pub use tokio::net::{TcpListener, TcpStream};
|
||||
pub use tokio_io::io::read_to_end;
|
||||
|
||||
pub use test::{self, Bencher};
|
||||
|
@ -1,7 +1,7 @@
|
||||
## Examples of `tokio-core`
|
||||
|
||||
This directory contains a number of examples showcasing various capabilities of
|
||||
the `tokio_core` crate. Most of these examples also leverage the `futures` and
|
||||
the `tokio` crate. Most of these examples also leverage the `futures` and
|
||||
`tokio_io` crates, along with a number of other miscellaneous dependencies for
|
||||
various tasks.
|
||||
|
||||
@ -15,7 +15,7 @@ A high level description of each example is:
|
||||
|
||||
* `hello` - a tiny server that simply writes "Hello!" to all connected clients
|
||||
and then terminates the connection, should help see how to create and
|
||||
initialize `tokio_core`.
|
||||
initialize `tokio`.
|
||||
* `echo` - this is your standard TCP "echo server" which simply accepts
|
||||
connections and then echos back any contents that are read from each connected
|
||||
client.
|
||||
|
@ -18,7 +18,7 @@
|
||||
//! messages.
|
||||
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::collections::HashMap;
|
||||
@ -30,8 +30,8 @@ use std::io::{Error, ErrorKind, BufReader};
|
||||
|
||||
use futures::Future;
|
||||
use futures::stream::{self, Stream};
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
use tokio_io::io;
|
||||
use tokio_io::AsyncRead;
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
extern crate futures;
|
||||
extern crate futures_cpupool;
|
||||
extern crate flate2;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::io;
|
||||
@ -30,8 +30,8 @@ use std::net::SocketAddr;
|
||||
|
||||
use futures::{Future, Stream, Poll};
|
||||
use futures_cpupool::CpuPool;
|
||||
use tokio_core::net::{TcpListener, TcpStream};
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::{TcpListener, TcpStream};
|
||||
use tokio::reactor::Core;
|
||||
use tokio_io::{AsyncRead, AsyncWrite};
|
||||
use flate2::write::GzEncoder;
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
//! stdin/stdout to a server" to get up and running.
|
||||
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
extern crate bytes;
|
||||
|
||||
@ -26,7 +26,7 @@ use std::thread;
|
||||
|
||||
use futures::sync::mpsc;
|
||||
use futures::{Sink, Future, Stream};
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
fn main() {
|
||||
// Determine if we're going to run in TCP or UDP mode
|
||||
@ -83,8 +83,8 @@ mod tcp {
|
||||
|
||||
use bytes::{BufMut, BytesMut};
|
||||
use futures::{Future, Stream};
|
||||
use tokio_core::net::TcpStream;
|
||||
use tokio_core::reactor::Handle;
|
||||
use tokio::net::TcpStream;
|
||||
use tokio::reactor::Handle;
|
||||
use tokio_io::AsyncRead;
|
||||
use tokio_io::codec::{Encoder, Decoder};
|
||||
|
||||
@ -167,8 +167,8 @@ mod udp {
|
||||
|
||||
use bytes::BytesMut;
|
||||
use futures::{Future, Stream};
|
||||
use tokio_core::net::{UdpCodec, UdpSocket};
|
||||
use tokio_core::reactor::Handle;
|
||||
use tokio::net::{UdpCodec, UdpSocket};
|
||||
use tokio::reactor::Handle;
|
||||
|
||||
pub fn connect(&addr: &SocketAddr,
|
||||
handle: &Handle,
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
extern crate futures;
|
||||
extern crate num_cpus;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::env;
|
||||
@ -27,8 +27,8 @@ use futures::stream::Stream;
|
||||
use futures::sync::mpsc;
|
||||
use tokio_io::AsyncRead;
|
||||
use tokio_io::io::copy;
|
||||
use tokio_core::net::TcpStream;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpStream;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
fn main() {
|
||||
// First argument, the address to bind
|
||||
@ -72,7 +72,7 @@ fn worker(rx: mpsc::UnboundedReceiver<net::TcpStream>) {
|
||||
let done = rx.for_each(move |socket| {
|
||||
// First up when we receive a socket we associate it with our event loop
|
||||
// using the `TcpStream::from_stream` API. After that the socket is not
|
||||
// a `tokio_core::net::TcpStream` meaning it's in nonblocking mode and
|
||||
// a `tokio::net::TcpStream` meaning it's in nonblocking mode and
|
||||
// ready to be used with Tokio
|
||||
let socket = TcpStream::from_stream(socket, &handle)
|
||||
.expect("failed to associate TCP stream");
|
||||
|
@ -12,14 +12,14 @@
|
||||
|
||||
extern crate futures;
|
||||
#[macro_use]
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
|
||||
use std::{env, io};
|
||||
use std::net::SocketAddr;
|
||||
|
||||
use futures::{Future, Poll};
|
||||
use tokio_core::net::UdpSocket;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::UdpSocket;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
struct Server {
|
||||
socket: UdpSocket,
|
||||
|
@ -18,7 +18,7 @@
|
||||
//! should be able to see them all make progress simultaneously.
|
||||
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::env;
|
||||
@ -28,8 +28,8 @@ use futures::Future;
|
||||
use futures::stream::Stream;
|
||||
use tokio_io::AsyncRead;
|
||||
use tokio_io::io::copy;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
fn main() {
|
||||
// Allow passing an address to listen on as the first argument of this
|
||||
|
@ -13,15 +13,15 @@
|
||||
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::env;
|
||||
use std::net::SocketAddr;
|
||||
|
||||
use futures::stream::Stream;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
|
||||
fn main() {
|
||||
env_logger::init().unwrap();
|
||||
|
@ -17,7 +17,7 @@
|
||||
//! the echo server, and you'll be able to see data flowing between them.
|
||||
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::sync::Arc;
|
||||
@ -27,8 +27,8 @@ use std::io::{self, Read, Write};
|
||||
|
||||
use futures::stream::Stream;
|
||||
use futures::{Future, Poll};
|
||||
use tokio_core::net::{TcpListener, TcpStream};
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::{TcpListener, TcpStream};
|
||||
use tokio::reactor::Core;
|
||||
use tokio_io::{AsyncRead, AsyncWrite};
|
||||
use tokio_io::io::{copy, shutdown};
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::env;
|
||||
@ -27,8 +27,8 @@ use std::net::SocketAddr;
|
||||
use futures::Future;
|
||||
use futures::stream::{self, Stream};
|
||||
use tokio_io::IoFuture;
|
||||
use tokio_core::net::{TcpListener, TcpStream};
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::{TcpListener, TcpStream};
|
||||
use tokio::reactor::Core;
|
||||
|
||||
fn main() {
|
||||
env_logger::init().unwrap();
|
||||
|
@ -40,7 +40,7 @@
|
||||
//! returning the previous value, if any.
|
||||
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::cell::RefCell;
|
||||
@ -51,8 +51,8 @@ use std::env;
|
||||
use std::net::SocketAddr;
|
||||
|
||||
use futures::prelude::*;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
use tokio_io::AsyncRead;
|
||||
use tokio_io::io::{lines, write_all};
|
||||
|
||||
|
@ -20,7 +20,7 @@ extern crate num_cpus;
|
||||
extern crate serde_derive;
|
||||
extern crate serde_json;
|
||||
extern crate time;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::env;
|
||||
@ -35,8 +35,8 @@ use futures::sync::mpsc;
|
||||
use futures::{Stream, Future, Sink};
|
||||
use http::{Request, Response, StatusCode};
|
||||
use http::header::HeaderValue;
|
||||
use tokio_core::net::TcpStream;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpStream;
|
||||
use tokio::reactor::Core;
|
||||
use tokio_io::codec::{Encoder, Decoder};
|
||||
use tokio_io::{AsyncRead};
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
//! new message with a new destination. Overall, we then use this to construct a
|
||||
//! "ping pong" pair where two sockets are sending messages back and forth.
|
||||
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
|
||||
@ -14,8 +14,8 @@ use std::io;
|
||||
use std::net::SocketAddr;
|
||||
|
||||
use futures::{Future, Stream, Sink};
|
||||
use tokio_core::net::{UdpSocket, UdpCodec};
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::{UdpSocket, UdpCodec};
|
||||
use tokio::reactor::Core;
|
||||
|
||||
pub struct LineCodec;
|
||||
|
||||
|
@ -43,14 +43,14 @@
|
||||
//!
|
||||
//! ```no_run
|
||||
//! extern crate futures;
|
||||
//! extern crate tokio_core;
|
||||
//! extern crate tokio;
|
||||
//! extern crate tokio_io;
|
||||
//!
|
||||
//! use futures::{Future, Stream};
|
||||
//! use tokio_io::AsyncRead;
|
||||
//! use tokio_io::io::copy;
|
||||
//! use tokio_core::net::TcpListener;
|
||||
//! use tokio_core::reactor::Core;
|
||||
//! use tokio::net::TcpListener;
|
||||
//! use tokio::reactor::Core;
|
||||
//!
|
||||
//! fn main() {
|
||||
//! // Create the event loop that will drive this server
|
||||
|
@ -1,6 +1,6 @@
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::net::TcpStream;
|
||||
@ -10,8 +10,8 @@ use std::io::{Read, Write, BufReader, BufWriter};
|
||||
use futures::Future;
|
||||
use futures::stream::Stream;
|
||||
use tokio_io::io::copy;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
@ -1,5 +1,5 @@
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::net::TcpStream;
|
||||
@ -9,8 +9,8 @@ use std::io::{Write, Read};
|
||||
use futures::Future;
|
||||
use futures::stream::Stream;
|
||||
use tokio_io::io::read_to_end;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
@ -1,6 +1,6 @@
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::io::{Read, Write};
|
||||
@ -9,8 +9,8 @@ use std::thread;
|
||||
|
||||
use futures::Future;
|
||||
use futures::stream::Stream;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
use tokio_io::AsyncRead;
|
||||
use tokio_io::io::copy;
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
|
||||
use std::time::{Instant, Duration};
|
||||
|
||||
use futures::stream::{Stream};
|
||||
use tokio_core::reactor::{Core, Interval};
|
||||
use tokio::reactor::{Core, Interval};
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
@ -1,5 +1,5 @@
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::net::TcpStream;
|
||||
@ -9,8 +9,8 @@ use std::io::{Write, Read};
|
||||
use futures::Future;
|
||||
use futures::stream::Stream;
|
||||
use tokio_io::io::read_to_end;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
@ -1,6 +1,6 @@
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
extern crate bytes;
|
||||
|
||||
@ -9,8 +9,8 @@ use std::net::Shutdown;
|
||||
|
||||
use bytes::{BytesMut, BufMut};
|
||||
use futures::{Future, Stream, Sink};
|
||||
use tokio_core::net::{TcpListener, TcpStream};
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::{TcpListener, TcpStream};
|
||||
use tokio::reactor::Core;
|
||||
use tokio_io::codec::{Encoder, Decoder};
|
||||
use tokio_io::io::{write_all, read};
|
||||
use tokio_io::AsyncRead;
|
||||
|
@ -4,7 +4,7 @@ extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate libc;
|
||||
extern crate mio;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::fs::File;
|
||||
@ -16,7 +16,7 @@ use std::time::Duration;
|
||||
use mio::unix::{UnixReady, EventedFd};
|
||||
use mio::{PollOpt, Ready, Token};
|
||||
use mio::event::Evented;
|
||||
use tokio_core::reactor::{Core, PollEvented};
|
||||
use tokio::reactor::{Core, PollEvented};
|
||||
use tokio_io::io::read_to_end;
|
||||
|
||||
macro_rules! t {
|
||||
|
@ -1,4 +1,4 @@
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
|
||||
@ -10,7 +10,7 @@ use std::time::Duration;
|
||||
use futures::{Future, Poll};
|
||||
use futures::future;
|
||||
use futures::sync::oneshot;
|
||||
use tokio_core::reactor::{Core, Timeout};
|
||||
use tokio::reactor::{Core, Timeout};
|
||||
|
||||
#[test]
|
||||
fn simple() {
|
||||
|
@ -1,6 +1,6 @@
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
extern crate tokio_io;
|
||||
|
||||
use std::io::{Read, Write};
|
||||
@ -11,8 +11,8 @@ use futures::Future;
|
||||
use futures::stream::Stream;
|
||||
use tokio_io::io::copy;
|
||||
use tokio_io::AsyncRead;
|
||||
use tokio_core::net::TcpListener;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::TcpListener;
|
||||
use tokio::reactor::Core;
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
@ -1,6 +1,6 @@
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
|
||||
use std::net;
|
||||
use std::sync::mpsc::channel;
|
||||
@ -8,8 +8,8 @@ use std::thread;
|
||||
|
||||
use futures::Future;
|
||||
use futures::stream::Stream;
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio_core::net::{TcpListener, TcpStream};
|
||||
use tokio::reactor::Core;
|
||||
use tokio::net::{TcpListener, TcpStream};
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
@ -1,10 +1,10 @@
|
||||
extern crate env_logger;
|
||||
extern crate futures;
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
|
||||
use std::time::{Instant, Duration};
|
||||
|
||||
use tokio_core::reactor::{Core, Timeout};
|
||||
use tokio::reactor::{Core, Timeout};
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
@ -1,13 +1,13 @@
|
||||
extern crate futures;
|
||||
#[macro_use]
|
||||
extern crate tokio_core;
|
||||
extern crate tokio;
|
||||
|
||||
use std::io;
|
||||
use std::net::SocketAddr;
|
||||
|
||||
use futures::{Future, Poll, Stream, Sink};
|
||||
use tokio_core::net::{UdpSocket, UdpCodec};
|
||||
use tokio_core::reactor::Core;
|
||||
use tokio::net::{UdpSocket, UdpCodec};
|
||||
use tokio::reactor::Core;
|
||||
|
||||
macro_rules! t {
|
||||
($e:expr) => (match $e {
|
||||
|
Loading…
x
Reference in New Issue
Block a user