J W created THRIFT-4664:
---------------------------

             Summary: 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


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)

Reply via email to