Skip to content

Commit 74ff046

Browse files
committed
feat(conference): add Conference enum entry
1 parent 81a13a2 commit 74ff046

File tree

7 files changed

+69
-33
lines changed

7 files changed

+69
-33
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/*! The implementation of file transfer
2+
*/
3+
4+
pub mod packet;
File renamed without changes.
File renamed without changes.

src/toxcore/messenger/packet/file_send_request.rs renamed to src/toxcore/messenger/file_transfer/packet/file_send_request.rs

File renamed without changes.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*! The implementation of file transfer packets.
2+
*/
3+
4+
use crate::toxcore::binary_io::*;
5+
6+
mod file_control;
7+
mod file_data;
8+
mod file_send_request;
9+
10+
pub use self::file_control::*;
11+
pub use self::file_data::*;
12+
pub use self::file_send_request::*;
13+
14+
/** File transfer packet enum that encapsulates all types of file transfer packets.
15+
*/
16+
#[derive(Clone, Debug, Eq, PartialEq)]
17+
pub enum Packet {
18+
/// [`FileControl`](./struct.FileControl.html) structure.
19+
FileControl(FileControl),
20+
/// [`FileData`](./struct.FileData.html) structure.
21+
FileData(FileData),
22+
/// [`FileSendRequest`](./struct.FileSendRequest.html) structure.
23+
FileSendRequest(FileSendRequest),
24+
}
25+
26+
impl ToBytes for Packet {
27+
fn to_bytes<'a>(&self, buf: (&'a mut [u8], usize)) -> Result<(&'a mut [u8], usize), GenError> {
28+
match *self {
29+
Packet::FileControl(ref p) => p.to_bytes(buf),
30+
Packet::FileData(ref p) => p.to_bytes(buf),
31+
Packet::FileSendRequest(ref p) => p.to_bytes(buf),
32+
}
33+
}
34+
}
35+
36+
impl FromBytes for Packet {
37+
named!(from_bytes<Packet>, alt!(
38+
map!(FileControl::from_bytes, Packet::FileControl) |
39+
map!(FileData::from_bytes, Packet::FileData) |
40+
map!(FileSendRequest::from_bytes, Packet::FileSendRequest)
41+
));
42+
}
43+
44+
#[cfg(test)]
45+
mod tests {
46+
use super::*;
47+
48+
encode_decode_test!(
49+
packet_file_control_encode_decode,
50+
Packet::FileControl(FileControl::new(TransferDirection::Send, 1, ControlType::Seek(100)))
51+
);
52+
53+
encode_decode_test!(
54+
packet_file_data_encode_decode,
55+
Packet::FileData(FileData::new(1, vec![1,2,3,4]))
56+
);
57+
58+
encode_decode_test!(
59+
packet_file_send_request_encode_decode,
60+
Packet::FileSendRequest(FileSendRequest::new(1, FileType::Avatar, 4, FileUID::new(), "data".to_string()))
61+
);
62+
}

src/toxcore/messenger/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33

44
pub mod packet;
55
pub mod conference;
6+
pub mod file_transfer;

src/toxcore/messenger/packet/mod.rs

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,19 @@ mod offline;
99
mod message;
1010
mod nickname;
1111
mod msi;
12-
mod file_control;
1312
mod typing;
1413
mod user_status;
15-
mod file_data;
1614
mod status_message;
17-
mod file_send_request;
1815

1916
pub use self::online::*;
2017
pub use self::action::*;
2118
pub use self::offline::*;
2219
pub use self::message::*;
2320
pub use self::nickname::*;
2421
pub use self::msi::*;
25-
pub use self::file_control::*;
2622
pub use self::typing::*;
2723
pub use self::user_status::*;
28-
pub use self::file_data::*;
2924
pub use self::status_message::*;
30-
pub use self::file_send_request::*;
3125

3226
pub use crate::toxcore::messenger::conference::packet::Packet as ConferencePacket;
3327

@@ -47,20 +41,16 @@ pub enum Packet {
4741
Nickname(Nickname),
4842
/// [`UserStatus`](./struct.UserStatus.html) structure.
4943
UserStatus(UserStatus),
50-
/// [`FileControl`](./struct.FileControl.html) structure.
51-
FileControl(FileControl),
5244
/// [`Typing`](./struct.Typing.html) structure.
5345
Typing(Typing),
54-
/// [`FileData`](./struct.FileData.html) structure.
55-
FileData(FileData),
56-
/// [`FileSendRequest`](./struct.FileSendRequest.html) structure.
57-
FileSendRequest(FileSendRequest),
5846
/// [`StatusMessage`](./struct.StatusMessage.html) structure.
5947
StatusMessage(StatusMessage),
6048
/// [`Msi`](./struct.Msi.html) structure.
6149
Msi(Msi),
6250
/// Packets of conference.
6351
Conference(ConferencePacket),
52+
/// Packets of file transfer.
53+
FileTransfer(FileTransferPacket),
6454
}
6555

6656
impl ToBytes for Packet {
@@ -72,11 +62,8 @@ impl ToBytes for Packet {
7262
Packet::Message(ref p) => p.to_bytes(buf),
7363
Packet::Nickname(ref p) => p.to_bytes(buf),
7464
Packet::UserStatus(ref p) => p.to_bytes(buf),
75-
Packet::FileControl(ref p) => p.to_bytes(buf),
7665
Packet::Typing(ref p) => p.to_bytes(buf),
77-
Packet::FileData(ref p) => p.to_bytes(buf),
7866
Packet::Msi(ref p) => p.to_bytes(buf),
79-
Packet::FileSendRequest(ref p) => p.to_bytes(buf),
8067
Packet::StatusMessage(ref p) => p.to_bytes(buf),
8168
Packet::Conference(ref p) => p.to_bytes(buf),
8269
}
@@ -91,9 +78,6 @@ impl FromBytes for Packet {
9178
map!(Nickname::from_bytes, Packet::Nickname) |
9279
map!(Message::from_bytes, Packet::Message) |
9380
map!(UserStatus::from_bytes, Packet::UserStatus) |
94-
map!(FileControl::from_bytes, Packet::FileControl) |
95-
map!(FileData::from_bytes, Packet::FileData) |
96-
map!(FileSendRequest::from_bytes, Packet::FileSendRequest) |
9781
map!(Msi::from_bytes, Packet::Msi) |
9882
map!(StatusMessage::from_bytes, Packet::StatusMessage) |
9983
map!(Typing::from_bytes, Packet::Typing) |
@@ -136,21 +120,11 @@ mod tests {
136120
Packet::UserStatus(UserStatus::new(PeerStatus::Busy))
137121
);
138122

139-
encode_decode_test!(
140-
packet_file_control_encode_decode,
141-
Packet::FileControl(FileControl::new(TransferDirection::Send, 1, ControlType::Seek(100)))
142-
);
143-
144123
encode_decode_test!(
145124
packet_typing_encode_decode,
146125
Packet::Typing(Typing::new(TypingStatus::NotTyping))
147126
);
148127

149-
encode_decode_test!(
150-
packet_file_data_encode_decode,
151-
Packet::FileData(FileData::new(1, vec![1,2,3,4]))
152-
);
153-
154128
encode_decode_test!(
155129
packet_msi_encode_decode,
156130
Packet::Msi(Msi::new(RequestKind::Init, None, CapabilitiesKind::SEND_AUDIO))
@@ -161,11 +135,6 @@ mod tests {
161135
Packet::StatusMessage(StatusMessage::new("1234".to_string()))
162136
);
163137

164-
encode_decode_test!(
165-
packet_file_send_request_encode_decode,
166-
Packet::FileSendRequest(FileSendRequest::new(1, FileType::Avatar, 4, FileUID::new(), "data".to_string()))
167-
);
168-
169138
encode_decode_test!(
170139
packet_conference_request_encode_decode,
171140
Packet::Conference(ConferencePacket::Invite(Invite::new(1, ConferenceType::Text, ConferenceUID::random())))

0 commit comments

Comments
 (0)