From a14ea9c2cac2135383d3db32fd23027e96db5354 Mon Sep 17 00:00:00 2001 From: Tim 'Piepmatz' Hesse Date: Sat, 1 Jun 2024 20:56:49 +0200 Subject: [PATCH] unit structs variants may now omit "content" in from_value --- crates/nu-derive-value/src/from.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/crates/nu-derive-value/src/from.rs b/crates/nu-derive-value/src/from.rs index 0e1a9d2468..6e19d682ba 100644 --- a/crates/nu-derive-value/src/from.rs +++ b/crates/nu-derive-value/src/from.rs @@ -144,13 +144,11 @@ fn enum_from_value(data: &DataEnum) -> TokenStream2 { })?; let ty = ty.into_string()?; - // TODO: make content optional if type refers to a unit variant - - let v = record.remove("content").ok_or_else(|| nu_protocol::ShellError::CantFindColumn { - col_name: std::string::ToString::to_string("content"), - span: call_span, - src_span: span - })?; + // This allows unit variants to resolve without the "content" field + // in the record. + let v = record + .remove("content") + .unwrap_or_else(|| nu_protocol::Value::nothing(span)); match ty.as_str() { #(#arms),*