pub struct Writer<W> { /* private fields */ }Implementations§
Source§impl<W> Writer<W>where
W: Write,
impl<W> Writer<W>where
W: Write,
Sourcepub fn new(w: W) -> Selfwhere
W: Write,
pub fn new(w: W) -> Selfwhere
W: Write,
Examples found in repository?
examples/port.rs (line 11)
7fn main() {
8 let (sender, receiver) = mpsc::channel::<Vec<u8>>();
9
10 // port -> beam
11 let mut writer = ei::Writer::new(io::stdout());
12
13 thread::spawn(move || {
14 while let Ok(vec) = receiver.recv() {
15 writer.send(vec.as_slice()).unwrap()
16 }
17 });
18
19 // beam -> port
20 let mut reader = ei::Reader::new(io::stdin());
21
22 while let Ok(vec) = reader.recv() {
23 let s = sender.clone();
24 thread::spawn(move || {
25 let req: (u8, i64, i64, ei::Pid, ei::Atom, ei::Ref) =
26 ei::deserialize!(vec.as_slice()).unwrap();
27
28 let res = match req.0 {
29 0x61 => {
30 let res = (ei::atom!("ok"), add(req.1, req.2), req.3, req.4, req.5);
31 ei::serialize!(&res).unwrap()
32 }
33 0x73 => {
34 let res = (ei::atom!("ok"), sub(req.1, req.2), req.3, req.4, req.5);
35 ei::serialize!(&res).unwrap()
36 }
37 _ => {
38 let res = (ei::atom!("error"), ei::atom!("undef"), req.3, req.4, req.5);
39 ei::serialize!(&res).unwrap()
40 }
41 };
42
43 s.send(res).unwrap();
44 });
45 }
46}pub fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
pub fn flush(&mut self) -> Result<(), Error>
pub fn write_i16(&mut self, i: i16) -> Result<(), Error>
pub fn write_i32(&mut self, i: i32) -> Result<(), Error>
pub fn write_u8(&mut self, u: u8) -> Result<(), Error>
pub fn write_u16(&mut self, u: u16) -> Result<(), Error>
pub fn write_u32(&mut self, u: u32) -> Result<(), Error>
pub fn write_u64(&mut self, u: u64) -> Result<(), Error>
pub fn write_f64(&mut self, f: f64) -> Result<(), Error>
Source§impl<W> Writer<W>where
W: Write,
impl<W> Writer<W>where
W: Write,
Sourcepub fn send(&mut self, v: &[u8]) -> Result<(), Error>
pub fn send(&mut self, v: &[u8]) -> Result<(), Error>
Examples found in repository?
examples/port.rs (line 15)
7fn main() {
8 let (sender, receiver) = mpsc::channel::<Vec<u8>>();
9
10 // port -> beam
11 let mut writer = ei::Writer::new(io::stdout());
12
13 thread::spawn(move || {
14 while let Ok(vec) = receiver.recv() {
15 writer.send(vec.as_slice()).unwrap()
16 }
17 });
18
19 // beam -> port
20 let mut reader = ei::Reader::new(io::stdin());
21
22 while let Ok(vec) = reader.recv() {
23 let s = sender.clone();
24 thread::spawn(move || {
25 let req: (u8, i64, i64, ei::Pid, ei::Atom, ei::Ref) =
26 ei::deserialize!(vec.as_slice()).unwrap();
27
28 let res = match req.0 {
29 0x61 => {
30 let res = (ei::atom!("ok"), add(req.1, req.2), req.3, req.4, req.5);
31 ei::serialize!(&res).unwrap()
32 }
33 0x73 => {
34 let res = (ei::atom!("ok"), sub(req.1, req.2), req.3, req.4, req.5);
35 ei::serialize!(&res).unwrap()
36 }
37 _ => {
38 let res = (ei::atom!("error"), ei::atom!("undef"), req.3, req.4, req.5);
39 ei::serialize!(&res).unwrap()
40 }
41 };
42
43 s.send(res).unwrap();
44 });
45 }
46}Auto Trait Implementations§
impl<W> Freeze for Writer<W>where
W: Freeze,
impl<W> RefUnwindSafe for Writer<W>where
W: RefUnwindSafe,
impl<W> Send for Writer<W>where
W: Send,
impl<W> Sync for Writer<W>where
W: Sync,
impl<W> Unpin for Writer<W>where
W: Unpin,
impl<W> UnwindSafe for Writer<W>where
W: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more