diff --git a/structlog.v b/structlog.v index a6d7226..ddd614b 100644 --- a/structlog.v +++ b/structlog.v @@ -431,6 +431,7 @@ pub fn (mut h TextHandler) handle(rec Record) ! { } } } + if i + 1 != rec.fields.len { if i in [0, 1] { buf.write_byte(` `) diff --git a/tests/struct_adapter_test.v b/tests/struct_adapter_test.v new file mode 100644 index 0000000..3f6db97 --- /dev/null +++ b/tests/struct_adapter_test.v @@ -0,0 +1,35 @@ +import structlog + +struct Simple { + foo int + bar string +} + +fn test_struct_adapter() { + assert structlog.struct_adapter(Simple{10, 'fooo'}) == [ + structlog.Field{'foo', 10}, + structlog.Field{'bar', 'fooo'}, + ] +} + +/* FIXME +enum SomeEnum { + one + two + three +} + +struct WithEnum { + foo int + bar string + some_enum SomeEnum +} + +fn test_struct_adapter_with_enum() { + assert structlog.struct_adapter(WithEnum{10, 'fooo', .two}) == [ + structlog.Field{'foo', 10}, + structlog.Field{'bar', 'fooo'}, + structlog.Field{'some_enum', 'two'}, + ] +} +*/