bencode_encoder/
encoder.rs1use std::fs::OpenOptions;
2use std::io::Write;
3use std::path::Path;
4
5use crate::BencodeResult;
6use crate::protocol::encode;
7use crate::types::Type;
8
9pub struct Encoder;
10
11impl Encoder {
12 pub fn encode(t: &Type) -> BencodeResult<Vec<u8>> {
13 Ok(encode(t))
14 }
15
16 pub fn encode_to<P>(t: &Type, path: P) -> BencodeResult<()>
17 where
18 P: AsRef<Path>
19 {
20 let mut bytes = encode(t);
21 let mut file = OpenOptions::new()
22 .write(true)
23 .create_new(true)
24 .open(path)?;
25
26 file.write_all(&mut bytes)?;
27
28 Ok(())
29 }
30}