Skip to content

Instantly share code, notes, and snippets.

@rrichardson
Created September 15, 2016 00:20
Show Gist options
  • Save rrichardson/a3e502704098c7d79d5d4d2eaeff0b6b to your computer and use it in GitHub Desktop.
Save rrichardson/a3e502704098c7d79d5d4d2eaeff0b6b to your computer and use it in GitHub Desktop.
trait impl
https://github.com/rrichardson/tokio-core/blob/master/src/net/mod.rs#L27-L41
trait impl that uses the above traits:
https://github.com/rrichardson/tokio-core/blob/master/src/net/udp_stream.rs#L25
to satisfy this trait:
http://alexcrichton.com/futures-rs/futures/stream/trait.Stream.html (specifically the poll function)
errors:
src/net/udp_stream.rs:25:21: 25:27 error: the trait bound `net::Buffer + Sized + 'static: std::marker::Sized` is not satisfied [E0277]
src/net/udp_stream.rs:25 impl<B: BufferPool> Stream for UdpStream<B> {
^~~~~~
src/net/udp_stream.rs:25:21: 25:27 help: run `rustc --explain E0277` to see a detailed explanation
src/net/udp_stream.rs:25:21: 25:27 note: `net::Buffer + Sized + 'static` does not have a constant size known at compile-time
src/net/udp_stream.rs:25:21: 25:27 note: required because it appears within the type `(net::Buffer + Sized + 'static, std::net::SocketAddr)`
src/net/udp_stream.rs:25:21: 25:27 note: required by `futures::stream::Stream`
src/net/udp_stream.rs:26:5: 26:46 error: the trait `net::Buffer` cannot be made into an object [E0038]
src/net/udp_stream.rs:26 type Item = (Buffer + Sized, SocketAddr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/net/udp_stream.rs:26:5: 26:46 help: run `rustc --explain E0038` to see a detailed explanation
src/net/udp_stream.rs:26:5: 26:46 note: the trait cannot require that `Self : Sized`
src/net/udp_stream.rs:29:5: 43:6 error: the trait `net::Buffer` cannot be made into an object [E0038]
src/net/udp_stream.rs:29 fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error> {
^
src/net/udp_stream.rs:29:5: 43:6 help: run `rustc --explain E0038` to see a detailed explanation
src/net/udp_stream.rs:29:5: 43:6 note: the trait cannot require that `Self : Sized`
src/net/udp_stream.rs:29:5: 43:6 error: the trait bound `net::Buffer + Sized + 'static: std::marker::Sized` is not satisfied [E0277]
src/net/udp_stream.rs:29 fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error> {
^
src/net/udp_stream.rs:29:5: 43:6 help: run `rustc --explain E0277` to see a detailed explanation
src/net/udp_stream.rs:29:5: 43:6 note: `net::Buffer + Sized + 'static` does not have a constant size known at compile-time
src/net/udp_stream.rs:29:5: 43:6 note: required because it appears within the type `(net::Buffer + Sized + 'static, std::net::SocketAddr)`
src/net/udp_stream.rs:29:5: 43:6 note: required by `std::option::Option`
src/net/mod.rs:82:6: 82:16 error: the trait bound `net::VecBufferPool: net::Buffer` is not satisfied [E0277]
src/net/mod.rs:82 impl BufferPool for VecBufferPool {
^~~~~~~~~~
src/net/mod.rs:82:6: 82:16 help: run `rustc --explain E0277` to see a detailed explanation
src/net/mod.rs:82:6: 82:16 note: required by `net::BufferPool`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment