@@ -71,30 +71,37 @@ fn get_brightness_based_on_location(latitude: f64, longitude: f64) -> u8 {
71
71
. into ( ) ;
72
72
73
73
compute_brightness_percentage (
74
- now. time ( ) ,
75
- sunrise_datetime. time ( ) ,
76
- sunrise_datetime. time ( ) + BRIGHTNESS_TRANSITION_DURATION ,
77
- sunset_datetime. time ( ) ,
78
- sunset_datetime. time ( ) + BRIGHTNESS_TRANSITION_DURATION ,
74
+ now,
75
+ sunrise_datetime,
76
+ sunrise_datetime + BRIGHTNESS_TRANSITION_DURATION ,
77
+ sunset_datetime,
78
+ sunset_datetime + BRIGHTNESS_TRANSITION_DURATION ,
79
79
)
80
80
}
81
81
82
82
fn get_brightness_based_on_time ( ) -> u8 {
83
+ let now = Local :: now ( ) ;
83
84
compute_brightness_percentage (
84
- Local :: now ( ) . time ( ) ,
85
- FALLBACK_BRIGHTNESS_UP_BEGIN . unwrap ( ) ,
86
- FALLBACK_BRIGHTNESS_UP_BEGIN . unwrap ( ) + BRIGHTNESS_TRANSITION_DURATION ,
87
- FALLBACK_BRIGHTNESS_DOWN_BEGIN . unwrap ( ) ,
88
- FALLBACK_BRIGHTNESS_DOWN_BEGIN . unwrap ( ) + BRIGHTNESS_TRANSITION_DURATION ,
85
+ now,
86
+ now. with_time ( FALLBACK_BRIGHTNESS_UP_BEGIN . unwrap ( ) )
87
+ . unwrap ( ) ,
88
+ now. with_time ( FALLBACK_BRIGHTNESS_UP_BEGIN . unwrap ( ) )
89
+ . unwrap ( )
90
+ + BRIGHTNESS_TRANSITION_DURATION ,
91
+ now. with_time ( FALLBACK_BRIGHTNESS_DOWN_BEGIN . unwrap ( ) )
92
+ . unwrap ( ) ,
93
+ now. with_time ( FALLBACK_BRIGHTNESS_DOWN_BEGIN . unwrap ( ) )
94
+ . unwrap ( )
95
+ + BRIGHTNESS_TRANSITION_DURATION ,
89
96
)
90
97
}
91
98
92
99
fn compute_brightness_percentage (
93
- now : NaiveTime ,
94
- brightness_up_begin : NaiveTime ,
95
- brightness_up_end : NaiveTime ,
96
- brightness_down_begin : NaiveTime ,
97
- brightness_down_end : NaiveTime ,
100
+ now : DateTime < Local > ,
101
+ brightness_up_begin : DateTime < Local > ,
102
+ brightness_up_end : DateTime < Local > ,
103
+ brightness_down_begin : DateTime < Local > ,
104
+ brightness_down_end : DateTime < Local > ,
98
105
) -> u8 {
99
106
assert ! ( brightness_up_begin < brightness_up_end) ;
100
107
assert ! ( brightness_up_end < brightness_down_begin) ;
@@ -125,15 +132,21 @@ mod tests {
125
132
126
133
#[ test]
127
134
fn test_fallback ( ) {
128
- let brightness_up_begin = FALLBACK_BRIGHTNESS_UP_BEGIN . unwrap ( ) ;
135
+ let now = Local :: now ( ) ;
136
+ let brightness_up_begin = now
137
+ . with_time ( FALLBACK_BRIGHTNESS_UP_BEGIN . unwrap ( ) )
138
+ . unwrap ( ) ;
129
139
let brightness_up_end = brightness_up_begin + BRIGHTNESS_TRANSITION_DURATION ;
130
- let brightness_down_begin = FALLBACK_BRIGHTNESS_DOWN_BEGIN . unwrap ( ) ;
140
+ let brightness_down_begin = now
141
+ . with_time ( FALLBACK_BRIGHTNESS_DOWN_BEGIN . unwrap ( ) )
142
+ . unwrap ( ) ;
131
143
let brightness_down_end = brightness_down_begin + BRIGHTNESS_TRANSITION_DURATION ;
132
144
133
145
for i in 0 ..=brightness_up_begin. hour ( ) {
134
146
assert_eq ! (
135
147
compute_brightness_percentage(
136
- NaiveTime :: from_hms_opt( i, 0 , 0 ) . unwrap( ) ,
148
+ now. with_time( NaiveTime :: from_hms_opt( i, 0 , 0 ) . unwrap( ) )
149
+ . unwrap( ) ,
137
150
brightness_up_begin,
138
151
brightness_up_end,
139
152
brightness_down_begin,
@@ -146,7 +159,8 @@ mod tests {
146
159
for i in brightness_up_end. hour ( ) ..=brightness_down_begin. hour ( ) {
147
160
assert_eq ! (
148
161
compute_brightness_percentage(
149
- NaiveTime :: from_hms_opt( i, 0 , 0 ) . unwrap( ) ,
162
+ now. with_time( NaiveTime :: from_hms_opt( i, 0 , 0 ) . unwrap( ) )
163
+ . unwrap( ) ,
150
164
brightness_up_begin,
151
165
brightness_up_end,
152
166
brightness_down_begin,
@@ -159,7 +173,8 @@ mod tests {
159
173
for i in brightness_down_end. hour ( ) ..=23 {
160
174
assert_eq ! (
161
175
compute_brightness_percentage(
162
- NaiveTime :: from_hms_opt( i, 0 , 0 ) . unwrap( ) ,
176
+ now. with_time( NaiveTime :: from_hms_opt( i, 0 , 0 ) . unwrap( ) )
177
+ . unwrap( ) ,
163
178
brightness_up_begin,
164
179
brightness_up_end,
165
180
brightness_down_begin,
@@ -172,10 +187,19 @@ mod tests {
172
187
173
188
#[ test]
174
189
fn test_exact_transition_points ( ) {
175
- let brightness_up_begin = NaiveTime :: from_hms_opt ( 6 , 7 , 8 ) . unwrap ( ) ;
176
- let brightness_up_end = NaiveTime :: from_hms_opt ( 7 , 8 , 9 ) . unwrap ( ) ;
177
- let brightness_down_begin = NaiveTime :: from_hms_opt ( 19 , 18 , 17 ) . unwrap ( ) ;
178
- let brightness_down_end = NaiveTime :: from_hms_opt ( 20 , 19 , 18 ) . unwrap ( ) ;
190
+ let now = Local :: now ( ) ;
191
+ let brightness_up_begin = now
192
+ . with_time ( NaiveTime :: from_hms_opt ( 6 , 7 , 8 ) . unwrap ( ) )
193
+ . unwrap ( ) ;
194
+ let brightness_up_end = now
195
+ . with_time ( NaiveTime :: from_hms_opt ( 7 , 8 , 9 ) . unwrap ( ) )
196
+ . unwrap ( ) ;
197
+ let brightness_down_begin = now
198
+ . with_time ( NaiveTime :: from_hms_opt ( 19 , 18 , 17 ) . unwrap ( ) )
199
+ . unwrap ( ) ;
200
+ let brightness_down_end = now
201
+ . with_time ( NaiveTime :: from_hms_opt ( 20 , 19 , 18 ) . unwrap ( ) )
202
+ . unwrap ( ) ;
179
203
180
204
assert_eq ! (
181
205
compute_brightness_percentage(
0 commit comments