33
44use jiff:: { civil, Span , Zoned } ;
55
6- use super :: { date, epoch, error, relative , time , timezone , weekday, year, Item } ;
6+ use super :: { date, epoch, error, offset , relative , time , weekday, year, Item } ;
77
88/// The builder is used to construct a DateTime object from various components.
99/// The parser creates a `DateTimeBuilder` object with the parsed components,
@@ -17,7 +17,7 @@ pub(crate) struct DateTimeBuilder {
1717 date : Option < date:: Date > ,
1818 time : Option < time:: Time > ,
1919 weekday : Option < weekday:: Weekday > ,
20- timezone : Option < timezone :: Offset > ,
20+ offset : Option < offset :: Offset > ,
2121 relative : Vec < relative:: Relative > ,
2222}
2323
@@ -41,7 +41,7 @@ impl DateTimeBuilder {
4141 } else if self . date . is_some ( )
4242 || self . time . is_some ( )
4343 || self . weekday . is_some ( )
44- || self . timezone . is_some ( )
44+ || self . offset . is_some ( )
4545 || !self . relative . is_empty ( )
4646 {
4747 return Err ( "timestamp cannot be combined with other date/time items" ) ;
@@ -67,7 +67,7 @@ impl DateTimeBuilder {
6767 return Err ( "timestamp cannot be combined with other date/time items" ) ;
6868 } else if self . time . is_some ( ) {
6969 return Err ( "time cannot appear more than once" ) ;
70- } else if self . timezone . is_some ( ) && time. offset . is_some ( ) {
70+ } else if self . offset . is_some ( ) && time. offset . is_some ( ) {
7171 return Err ( "time offset and timezone are mutually exclusive" ) ;
7272 }
7373
@@ -86,16 +86,16 @@ impl DateTimeBuilder {
8686 Ok ( self )
8787 }
8888
89- pub ( super ) fn set_timezone ( mut self , timezone : timezone :: Offset ) -> Result < Self , & ' static str > {
89+ pub ( super ) fn set_offset ( mut self , timezone : offset :: Offset ) -> Result < Self , & ' static str > {
9090 if self . timestamp . is_some ( ) {
9191 return Err ( "timestamp cannot be combined with other date/time items" ) ;
92- } else if self . timezone . is_some ( ) {
93- return Err ( "timezone cannot appear more than once" ) ;
94- } else if self . time . as_ref ( ) . and_then ( |t| t . offset . as_ref ( ) ) . is_some ( ) {
95- return Err ( "time offset and timezone are mutually exclusive " ) ;
92+ } else if self . offset . is_some ( )
93+ || self . time . as_ref ( ) . and_then ( |t| t . offset . as_ref ( ) ) . is_some ( )
94+ {
95+ return Err ( "time offset cannot appear more than once " ) ;
9696 }
9797
98- self . timezone = Some ( timezone) ;
98+ self . offset = Some ( timezone) ;
9999 Ok ( self )
100100 }
101101
@@ -162,7 +162,7 @@ impl DateTimeBuilder {
162162 && self . date . is_none ( )
163163 && self . time . is_none ( )
164164 && self . weekday . is_none ( )
165- && self . timezone . is_none ( )
165+ && self . offset . is_none ( )
166166 {
167167 base
168168 } else {
@@ -239,7 +239,7 @@ impl DateTimeBuilder {
239239 } ) ?;
240240 }
241241
242- if let Some ( offset) = self . timezone {
242+ if let Some ( offset) = self . offset {
243243 let ( offset, hour_adjustment) = offset. normalize ( ) ;
244244 dt = dt. checked_add ( Span :: new ( ) . hours ( hour_adjustment) ) ?;
245245 dt = dt. datetime ( ) . to_zoned ( ( & offset) . try_into ( ) ?) ?;
@@ -262,7 +262,7 @@ impl TryFrom<Vec<Item>> for DateTimeBuilder {
262262 Item :: Date ( d) => builder. set_date ( d) ?,
263263 Item :: Time ( t) => builder. set_time ( t) ?,
264264 Item :: Weekday ( weekday) => builder. set_weekday ( weekday) ?,
265- Item :: TimeZone ( tz ) => builder. set_timezone ( tz ) ?,
265+ Item :: Offset ( offset ) => builder. set_offset ( offset ) ?,
266266 Item :: Relative ( rel) => builder. push_relative ( rel) ?,
267267 Item :: Pure ( pure) => builder. set_pure ( pure) ?,
268268 }
0 commit comments