[ https://issues.apache.org/jira/browse/THRIFT-4664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King III updated THRIFT-4664: -------------------------------------- Fix Version/s: (was: 1.0) 0.12.0 > Rust cannot create ReadHalf/WriteHalf to implement custom tranports > ------------------------------------------------------------------- > > Key: THRIFT-4664 > URL: https://issues.apache.org/jira/browse/THRIFT-4664 > Project: Thrift > Issue Type: Improvement > Components: Rust - Library > Affects Versions: 0.11.0 > Environment: C:\Users\jake>rustup show > Default host: x86_64-pc-windows-msvc > stable-x86_64-pc-windows-msvc (default) > rustc 1.30.0 (da5f414c2 2018-10-24) > Reporter: J W > Assignee: Allen George > Priority: Minor > Fix For: 0.12.0 > > > To implement custom transports ("channels") looks like the intention is: > # Optionally, `impl TIoChannel for XXX` providing a split() > # Create `ReadHalf` and `WriteHalf` as passed to various > `XXXProtocol::new()` associated functions > Problems is: > {code:java} > use thrift::transport::{ > TIoChannel, > ReadHalf, > WriteHalf, > }; > impl TIoChannel for TNngChannel { > fn split(self) -> thrift::Result<(ReadHalf<Self>, WriteHalf<Self>)> where > Self: Sized, > { > //SNIP > Ok(( > ReadHalf { handle: self }, > WriteHalf { handle: clone } > )) > } > {code} > Results in: > error[E0451]: field `handle` of struct `thrift::transport::ReadHalf` is > private > --> runng-thrift\src\nng_channel.rs:57:24 > 57 | ReadHalf \{ handle: self }, > > ^^^^^^^^^^^^ field `handle` is private > > To enable creation of custom tranports/channels need to be able to create > `ReadHalf` and `WriteHalf` from outside the crate. -- This message was sent by Atlassian JIRA (v7.6.3#76005)