mirror of
https://github.com/nushell/nushell.git
synced 2025-06-20 01:48:09 +02:00
taking today time as default -> working for datetime, not timezone yet
This commit is contained in:
parent
71964354e0
commit
44fea3e00e
@ -540,7 +540,7 @@ fn merge_record(record: &Record, head: Span, span: Span) -> Value {
|
|||||||
Now,
|
Now,
|
||||||
Zero,
|
Zero,
|
||||||
}
|
}
|
||||||
let mut record_column_default = RecordColumnDefault::Zero;
|
let mut record_column_default = RecordColumnDefault::Now;
|
||||||
|
|
||||||
let now = Local::now();
|
let now = Local::now();
|
||||||
let mut now_nanosecond = now.nanosecond();
|
let mut now_nanosecond = now.nanosecond();
|
||||||
@ -549,25 +549,30 @@ fn merge_record(record: &Record, head: Span, span: Span) -> Value {
|
|||||||
let now_microsecond = now_nanosecond / 1_000;
|
let now_microsecond = now_nanosecond / 1_000;
|
||||||
now_nanosecond %= 1_000;
|
now_nanosecond %= 1_000;
|
||||||
|
|
||||||
let nanosecond = match record.get("nanosecond") {
|
let year: i32 = match record.get("year") {
|
||||||
Some(col_val) => {
|
Some(val) => {
|
||||||
record_column_default = RecordColumnDefault::Now;
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
match parse_value_from_record_as_u32_bis("nanosecond", col_val, &head, &span) {
|
match val {
|
||||||
Ok(value) => value,
|
Value::Int { val, .. } => *val as i32,
|
||||||
Err(err) => {
|
other => {
|
||||||
return err;
|
return Value::error(
|
||||||
|
ShellError::OnlySupportsThisInputType {
|
||||||
|
exp_input_type: "int".to_string(),
|
||||||
|
wrong_type: other.get_type().to_string(),
|
||||||
|
dst_span: head,
|
||||||
|
src_span: other.span(),
|
||||||
|
},
|
||||||
|
span,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => match record_column_default {
|
None => now.year(),
|
||||||
RecordColumnDefault::Now => now_nanosecond,
|
|
||||||
RecordColumnDefault::Zero => 0,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
let microsecond = match record.get("microsecond") {
|
let month = match record.get("month") {
|
||||||
Some(col_val) => {
|
Some(col_val) => {
|
||||||
record_column_default = RecordColumnDefault::Now;
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
match parse_value_from_record_as_u32_bis("microsecond", col_val, &head, &span) {
|
match parse_value_from_record_as_u32_bis("month", col_val, &head, &span) {
|
||||||
Ok(value) => value,
|
Ok(value) => value,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
return err;
|
return err;
|
||||||
@ -575,73 +580,13 @@ fn merge_record(record: &Record, head: Span, span: Span) -> Value {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => match record_column_default {
|
None => match record_column_default {
|
||||||
RecordColumnDefault::Now => now_microsecond,
|
RecordColumnDefault::Now => now.month(),
|
||||||
RecordColumnDefault::Zero => 0,
|
RecordColumnDefault::Zero => 1,
|
||||||
},
|
|
||||||
};
|
|
||||||
let millisecond = match record.get("millisecond") {
|
|
||||||
Some(col_val) => {
|
|
||||||
record_column_default = RecordColumnDefault::Now;
|
|
||||||
match parse_value_from_record_as_u32_bis("millisecond", col_val, &head, &span) {
|
|
||||||
Ok(value) => value,
|
|
||||||
Err(err) => {
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
None => match record_column_default {
|
|
||||||
RecordColumnDefault::Now => now_millisecond,
|
|
||||||
RecordColumnDefault::Zero => 0,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
let second = match record.get("second") {
|
|
||||||
Some(col_val) => {
|
|
||||||
record_column_default = RecordColumnDefault::Now;
|
|
||||||
match parse_value_from_record_as_u32_bis("second", col_val, &head, &span) {
|
|
||||||
Ok(value) => value,
|
|
||||||
Err(err) => {
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
None => match record_column_default {
|
|
||||||
RecordColumnDefault::Now => now.second(),
|
|
||||||
RecordColumnDefault::Zero => 0,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
let minute = match record.get("minute") {
|
|
||||||
Some(col_val) => {
|
|
||||||
record_column_default = RecordColumnDefault::Now;
|
|
||||||
match parse_value_from_record_as_u32_bis("minute", col_val, &head, &span) {
|
|
||||||
Ok(value) => value,
|
|
||||||
Err(err) => {
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
None => match record_column_default {
|
|
||||||
RecordColumnDefault::Now => now.minute(),
|
|
||||||
RecordColumnDefault::Zero => 0,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
let hour = match record.get("hour") {
|
|
||||||
Some(col_val) => {
|
|
||||||
record_column_default = RecordColumnDefault::Now;
|
|
||||||
match parse_value_from_record_as_u32_bis("hour", col_val, &head, &span) {
|
|
||||||
Ok(value) => value,
|
|
||||||
Err(err) => {
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
None => match record_column_default {
|
|
||||||
RecordColumnDefault::Now => now.hour(),
|
|
||||||
RecordColumnDefault::Zero => 0,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
let day = match record.get("day") {
|
let day = match record.get("day") {
|
||||||
Some(col_val) => {
|
Some(col_val) => {
|
||||||
record_column_default = RecordColumnDefault::Now;
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
match parse_value_from_record_as_u32_bis("day", col_val, &head, &span) {
|
match parse_value_from_record_as_u32_bis("day", col_val, &head, &span) {
|
||||||
Ok(value) => value,
|
Ok(value) => value,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
@ -654,34 +599,95 @@ fn merge_record(record: &Record, head: Span, span: Span) -> Value {
|
|||||||
RecordColumnDefault::Zero => 1,
|
RecordColumnDefault::Zero => 1,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
let month = match record.get("month") {
|
let hour = match record.get("hour") {
|
||||||
Some(col_val) => match parse_value_from_record_as_u32_bis("month", col_val, &head, &span) {
|
Some(col_val) => {
|
||||||
Ok(value) => value,
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
Err(err) => {
|
match parse_value_from_record_as_u32_bis("hour", col_val, &head, &span) {
|
||||||
return err;
|
Ok(value) => value,
|
||||||
|
Err(err) => {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
None => match record_column_default {
|
None => match record_column_default {
|
||||||
RecordColumnDefault::Now => now.month(),
|
RecordColumnDefault::Now => now.hour(),
|
||||||
RecordColumnDefault::Zero => 1,
|
RecordColumnDefault::Zero => 0,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
let year: i32 = match record.get("year") {
|
let minute = match record.get("minute") {
|
||||||
Some(val) => match val {
|
Some(col_val) => {
|
||||||
Value::Int { val, .. } => *val as i32,
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
other => {
|
match parse_value_from_record_as_u32_bis("minute", col_val, &head, &span) {
|
||||||
return Value::error(
|
Ok(value) => value,
|
||||||
ShellError::OnlySupportsThisInputType {
|
Err(err) => {
|
||||||
exp_input_type: "int".to_string(),
|
return err;
|
||||||
wrong_type: other.get_type().to_string(),
|
}
|
||||||
dst_span: head,
|
|
||||||
src_span: other.span(),
|
|
||||||
},
|
|
||||||
span,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
None => match record_column_default {
|
||||||
|
RecordColumnDefault::Now => now.minute(),
|
||||||
|
RecordColumnDefault::Zero => 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let second = match record.get("second") {
|
||||||
|
Some(col_val) => {
|
||||||
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
|
match parse_value_from_record_as_u32_bis("second", col_val, &head, &span) {
|
||||||
|
Ok(value) => value,
|
||||||
|
Err(err) => {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => match record_column_default {
|
||||||
|
RecordColumnDefault::Now => now.second(),
|
||||||
|
RecordColumnDefault::Zero => 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let millisecond = match record.get("millisecond") {
|
||||||
|
Some(col_val) => {
|
||||||
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
|
match parse_value_from_record_as_u32_bis("millisecond", col_val, &head, &span) {
|
||||||
|
Ok(value) => value,
|
||||||
|
Err(err) => {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => match record_column_default {
|
||||||
|
RecordColumnDefault::Now => now_millisecond,
|
||||||
|
RecordColumnDefault::Zero => 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let microsecond = match record.get("microsecond") {
|
||||||
|
Some(col_val) => {
|
||||||
|
record_column_default = RecordColumnDefault::Zero;
|
||||||
|
match parse_value_from_record_as_u32_bis("microsecond", col_val, &head, &span) {
|
||||||
|
Ok(value) => value,
|
||||||
|
Err(err) => {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => match record_column_default {
|
||||||
|
RecordColumnDefault::Now => now_microsecond,
|
||||||
|
RecordColumnDefault::Zero => 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
let nanosecond = match record.get("nanosecond") {
|
||||||
|
Some(col_val) => {
|
||||||
|
match parse_value_from_record_as_u32_bis("nanosecond", col_val, &head, &span) {
|
||||||
|
Ok(value) => value,
|
||||||
|
Err(err) => {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => match record_column_default {
|
||||||
|
RecordColumnDefault::Now => now_nanosecond,
|
||||||
|
RecordColumnDefault::Zero => 0,
|
||||||
},
|
},
|
||||||
None => now.year(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let offset = match parse_timezone_from_record(record, &head, &span) {
|
let offset = match parse_timezone_from_record(record, &head, &span) {
|
||||||
@ -756,7 +762,6 @@ fn parse_value_from_record_as_u32_bis(
|
|||||||
head: &Span,
|
head: &Span,
|
||||||
span: &Span,
|
span: &Span,
|
||||||
) -> Result<u32, Value> {
|
) -> Result<u32, Value> {
|
||||||
dbg!(col);
|
|
||||||
let value: u32 = match col_val {
|
let value: u32 = match col_val {
|
||||||
Value::Int { val, .. } => {
|
Value::Int { val, .. } => {
|
||||||
if *val < 0 || *val > u32::MAX as i64 {
|
if *val < 0 || *val > u32::MAX as i64 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user