use crate::binary::struct_trait::{end::End, end::Signal};
use std::error::Error;
pub fn close(s: End) -> Result<(), Box<dyn Error>> {
s.sender.send(Signal::Stop)?;
match s.receiver.recv()? {
Signal::Stop => {}
err => panic!("Unexpected label, expected Signal::Stop, got {:?}", err),
}
drop(s);
Ok(())
}