Skip to content

Commit f3b3802

Browse files
committed
Derive Default instead of implementing it
1 parent dcf98f7 commit f3b3802

8 files changed

Lines changed: 10 additions & 130 deletions

File tree

libcc2rs/src/libc_shims/ifaddrs.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use crate::{ByteRepr, Ptr, Value};
66
use std::cell::RefCell;
77
use std::rc::Rc;
88

9+
#[derive(Default)]
910
pub struct Ifaddrs {
1011
pub ifa_next: Value<Ptr<Ifaddrs>>,
1112
pub ifa_name: Value<Ptr<u8>>,
@@ -14,18 +15,6 @@ pub struct Ifaddrs {
1415
pub ifa_netmask: Value<Ptr<Sockaddr>>,
1516
}
1617

17-
impl Default for Ifaddrs {
18-
fn default() -> Self {
19-
Self {
20-
ifa_next: Rc::new(RefCell::new(Ptr::null())),
21-
ifa_name: Rc::new(RefCell::new(Ptr::null())),
22-
ifa_flags: Rc::new(RefCell::new(0)),
23-
ifa_addr: Rc::new(RefCell::new(Ptr::null())),
24-
ifa_netmask: Rc::new(RefCell::new(Ptr::null())),
25-
}
26-
}
27-
}
28-
2918
impl Clone for Ifaddrs {
3019
fn clone(&self) -> Self {
3120
Self {

libcc2rs/src/libc_shims/netdb.rs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use crate::{ByteRepr, Ptr, Value};
66
use std::cell::RefCell;
77
use std::rc::Rc;
88

9+
#[derive(Default)]
910
pub struct Addrinfo {
1011
pub ai_flags: Value<i32>,
1112
pub ai_family: Value<i32>,
@@ -17,21 +18,6 @@ pub struct Addrinfo {
1718
pub ai_next: Value<Ptr<Addrinfo>>,
1819
}
1920

20-
impl Default for Addrinfo {
21-
fn default() -> Self {
22-
Self {
23-
ai_flags: Rc::new(RefCell::new(0)),
24-
ai_family: Rc::new(RefCell::new(0)),
25-
ai_socktype: Rc::new(RefCell::new(0)),
26-
ai_protocol: Rc::new(RefCell::new(0)),
27-
ai_addrlen: Rc::new(RefCell::new(0)),
28-
ai_addr: Rc::new(RefCell::new(Ptr::null())),
29-
ai_canonname: Rc::new(RefCell::new(Ptr::null())),
30-
ai_next: Rc::new(RefCell::new(Ptr::null())),
31-
}
32-
}
33-
}
34-
3521
impl Clone for Addrinfo {
3622
fn clone(&self) -> Self {
3723
Self {

libcc2rs/src/libc_shims/poll.rs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,13 @@ use crate::{ByteRepr, Value};
55
use std::cell::RefCell;
66
use std::rc::Rc;
77

8+
#[derive(Default)]
89
pub struct Pollfd {
910
pub fd: Value<i32>,
1011
pub events: Value<i16>,
1112
pub revents: Value<i16>,
1213
}
1314

14-
impl Default for Pollfd {
15-
fn default() -> Self {
16-
Self {
17-
fd: Rc::new(RefCell::new(0)),
18-
events: Rc::new(RefCell::new(0)),
19-
revents: Rc::new(RefCell::new(0)),
20-
}
21-
}
22-
}
23-
2415
impl Clone for Pollfd {
2516
fn clone(&self) -> Self {
2617
Self {

libcc2rs/src/libc_shims/pwd.rs

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::{ByteRepr, Ptr, Value};
55
use std::cell::RefCell;
66
use std::rc::Rc;
77

8+
#[derive(Default)]
89
pub struct Passwd {
910
pub pw_name: Value<Ptr<u8>>,
1011
pub pw_passwd: Value<Ptr<u8>>,
@@ -15,20 +16,6 @@ pub struct Passwd {
1516
pub pw_shell: Value<Ptr<u8>>,
1617
}
1718

18-
impl Default for Passwd {
19-
fn default() -> Self {
20-
Self {
21-
pw_name: Rc::new(RefCell::new(Ptr::null())),
22-
pw_passwd: Rc::new(RefCell::new(Ptr::null())),
23-
pw_uid: Rc::new(RefCell::new(0)),
24-
pw_gid: Rc::new(RefCell::new(0)),
25-
pw_gecos: Rc::new(RefCell::new(Ptr::null())),
26-
pw_dir: Rc::new(RefCell::new(Ptr::null())),
27-
pw_shell: Rc::new(RefCell::new(Ptr::null())),
28-
}
29-
}
30-
}
31-
3219
impl Clone for Passwd {
3320
fn clone(&self) -> Self {
3421
Self {

libcc2rs/src/libc_shims/socket.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ pub struct SockaddrIn {
1818
pub sin_zero: Value<Box<[u8]>>,
1919
}
2020

21+
#[derive(Default)]
2122
pub struct SockaddrIn6 {
2223
pub sin6_family: Value<u16>,
2324
pub sin6_port: Value<u16>,
@@ -56,18 +57,6 @@ impl Default for SockaddrIn {
5657
}
5758
}
5859

59-
impl Default for SockaddrIn6 {
60-
fn default() -> Self {
61-
Self {
62-
sin6_family: Rc::new(RefCell::new(0)),
63-
sin6_port: Rc::new(RefCell::new(0)),
64-
sin6_flowinfo: Rc::new(RefCell::new(0)),
65-
sin6_addr: Rc::new(RefCell::new(In6Addr::default())),
66-
sin6_scope_id: Rc::new(RefCell::new(0)),
67-
}
68-
}
69-
}
70-
7160
impl Default for SockaddrUn {
7261
fn default() -> Self {
7362
Self {

libcc2rs/src/libc_shims/stat.rs

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::{ByteRepr, Value};
55
use std::cell::RefCell;
66
use std::rc::Rc;
77

8+
#[derive(Default)]
89
pub struct Stat {
910
pub st_dev: Value<u64>,
1011
pub st_ino: Value<u64>,
@@ -21,26 +22,6 @@ pub struct Stat {
2122
pub st_ctime: Value<i64>,
2223
}
2324

24-
impl Default for Stat {
25-
fn default() -> Self {
26-
Self {
27-
st_dev: Rc::new(RefCell::new(0)),
28-
st_ino: Rc::new(RefCell::new(0)),
29-
st_nlink: Rc::new(RefCell::new(0)),
30-
st_mode: Rc::new(RefCell::new(0)),
31-
st_uid: Rc::new(RefCell::new(0)),
32-
st_gid: Rc::new(RefCell::new(0)),
33-
st_rdev: Rc::new(RefCell::new(0)),
34-
st_size: Rc::new(RefCell::new(0)),
35-
st_blksize: Rc::new(RefCell::new(0)),
36-
st_blocks: Rc::new(RefCell::new(0)),
37-
st_atime: Rc::new(RefCell::new(0)),
38-
st_mtime: Rc::new(RefCell::new(0)),
39-
st_ctime: Rc::new(RefCell::new(0)),
40-
}
41-
}
42-
}
43-
4425
impl Clone for Stat {
4526
fn clone(&self) -> Self {
4627
Self {

libcc2rs/src/libc_shims/termios.rs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,14 @@ impl Clone for Termios {
4848

4949
impl ByteRepr for Termios {}
5050

51+
#[derive(Default)]
5152
pub struct Winsize {
5253
pub ws_row: Value<u16>,
5354
pub ws_col: Value<u16>,
5455
pub ws_xpixel: Value<u16>,
5556
pub ws_ypixel: Value<u16>,
5657
}
5758

58-
impl Default for Winsize {
59-
fn default() -> Self {
60-
Self {
61-
ws_row: Rc::new(RefCell::new(0)),
62-
ws_col: Rc::new(RefCell::new(0)),
63-
ws_xpixel: Rc::new(RefCell::new(0)),
64-
ws_ypixel: Rc::new(RefCell::new(0)),
65-
}
66-
}
67-
}
68-
6959
impl Clone for Winsize {
7060
fn clone(&self) -> Self {
7161
Self {

libcc2rs/src/libc_shims/time.rs

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::{ByteRepr, Ptr, Value};
55
use std::cell::RefCell;
66
use std::rc::Rc;
77

8+
#[derive(Default)]
89
pub struct Tm {
910
pub tm_sec: Value<i32>,
1011
pub tm_min: Value<i32>,
@@ -19,24 +20,6 @@ pub struct Tm {
1920
pub tm_zone: Value<Ptr<u8>>,
2021
}
2122

22-
impl Default for Tm {
23-
fn default() -> Self {
24-
Self {
25-
tm_sec: Rc::new(RefCell::new(0)),
26-
tm_min: Rc::new(RefCell::new(0)),
27-
tm_hour: Rc::new(RefCell::new(0)),
28-
tm_mday: Rc::new(RefCell::new(0)),
29-
tm_mon: Rc::new(RefCell::new(0)),
30-
tm_year: Rc::new(RefCell::new(0)),
31-
tm_wday: Rc::new(RefCell::new(0)),
32-
tm_yday: Rc::new(RefCell::new(0)),
33-
tm_isdst: Rc::new(RefCell::new(0)),
34-
tm_gmtoff: Rc::new(RefCell::new(0)),
35-
tm_zone: Rc::new(RefCell::new(Ptr::null())),
36-
}
37-
}
38-
}
39-
4023
impl Clone for Tm {
4124
fn clone(&self) -> Self {
4225
Self {
@@ -57,20 +40,12 @@ impl Clone for Tm {
5740

5841
impl ByteRepr for Tm {}
5942

43+
#[derive(Default)]
6044
pub struct Timeval {
6145
pub tv_sec: Value<i64>,
6246
pub tv_usec: Value<i64>,
6347
}
6448

65-
impl Default for Timeval {
66-
fn default() -> Self {
67-
Self {
68-
tv_sec: Rc::new(RefCell::new(0)),
69-
tv_usec: Rc::new(RefCell::new(0)),
70-
}
71-
}
72-
}
73-
7449
impl Clone for Timeval {
7550
fn clone(&self) -> Self {
7651
Self {
@@ -82,20 +57,12 @@ impl Clone for Timeval {
8257

8358
impl ByteRepr for Timeval {}
8459

60+
#[derive(Default)]
8561
pub struct Timespec {
8662
pub tv_sec: Value<i64>,
8763
pub tv_nsec: Value<i64>,
8864
}
8965

90-
impl Default for Timespec {
91-
fn default() -> Self {
92-
Self {
93-
tv_sec: Rc::new(RefCell::new(0)),
94-
tv_nsec: Rc::new(RefCell::new(0)),
95-
}
96-
}
97-
}
98-
9966
impl Clone for Timespec {
10067
fn clone(&self) -> Self {
10168
Self {

0 commit comments

Comments
 (0)