Skip to content

Commit bd7a397

Browse files
committed
Put span fields on their own lines in line rendering mode
1 parent 73e521d commit bd7a397

File tree

4 files changed

+145
-42
lines changed

4 files changed

+145
-42
lines changed

examples/basic.stdout

Lines changed: 44 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,68 @@
11
1:main┐basic::hierarchical-example version=0.1
22
1:main├┐basic::hierarchical-example version=0.1
3-
1:main│└┐basic::server host="localhost", port=8080
3+
1:main│└┬─┬─ basic::server host="localhost"
4+
1:main│ │ └─ port=8080
45
1:main│ ├─ Xms INFO basic starting
56
1:main│ ├─ Xs INFO basic listening
6-
1:main│ ├┐basic::server host="localhost", port=8080
7-
1:main│ │└┐basic::conn peer_addr="82.9.9.9", port=42381
7+
1:main│ ├┬─┬─ basic::server host="localhost"
8+
1:main│ ││ └─ port=8080
9+
1:main│ │└┬─┬─ basic::conn peer_addr="82.9.9.9"
10+
1:main│ │ │ └─ port=42381
811
1:main│ │ ├─ Xms DEBUG basic connected
912
1:main│ │ ├─┬─ Xms DEBUG basic message received
1013
1:main│ │ │ └─ length=2
11-
1:main│ │┌┘basic::conn peer_addr="82.9.9.9", port=42381
12-
1:main│ ├┘basic::server host="localhost", port=8080
13-
1:main│ ├┐basic::server host="localhost", port=8080
14-
1:main│ │└┐basic::conn peer_addr="8.8.8.8", port=18230
14+
1:main│ │┌┴┬─ basic::conn peer_addr="82.9.9.9"
15+
1:main│ ││ └─ port=42381
16+
1:main│ ├┴┬─ basic::server host="localhost"
17+
1:main│ │ └─ port=8080
18+
1:main│ ├┬─┬─ basic::server host="localhost"
19+
1:main│ ││ └─ port=8080
20+
1:main│ │└┬─┬─ basic::conn peer_addr="8.8.8.8"
21+
1:main│ │ │ └─ port=18230
1522
1:main│ │ ├─ Xms DEBUG basic connected
16-
1:main│ │┌┘basic::conn peer_addr="8.8.8.8", port=18230
17-
1:main│ ├┘basic::server host="localhost", port=8080
18-
1:main│ ├┐basic::server host="localhost", port=8080
19-
1:main│ │└┐basic::foomp 42 <- format string, normal_var=43
23+
1:main│ │┌┴┬─ basic::conn peer_addr="8.8.8.8"
24+
1:main│ ││ └─ port=18230
25+
1:main│ ├┴┬─ basic::server host="localhost"
26+
1:main│ │ └─ port=8080
27+
1:main│ ├┬─┬─ basic::server host="localhost"
28+
1:main│ ││ └─ port=8080
29+
1:main│ │└┬─┬─ basic::foomp 42 <- format string
30+
1:main│ │ │ └─ normal_var=43
2031
1:main│ │ ├─ Xms ERROR basic hello
21-
1:main│ │┌┘basic::foomp 42 <- format string, normal_var=43
22-
1:main│ ├┘basic::server host="localhost", port=8080
23-
1:main│ ├┐basic::server host="localhost", port=8080
24-
1:main│ │└┐basic::conn peer_addr="82.9.9.9", port=42381
32+
1:main│ │┌┴┬─ basic::foomp 42 <- format string
33+
1:main│ ││ └─ normal_var=43
34+
1:main│ ├┴┬─ basic::server host="localhost"
35+
1:main│ │ └─ port=8080
36+
1:main│ ├┬─┬─ basic::server host="localhost"
37+
1:main│ ││ └─ port=8080
38+
1:main│ │└┬─┬─ basic::conn peer_addr="82.9.9.9"
39+
1:main│ │ │ └─ port=42381
2540
1:main│ │ ├─┬─ Xms WARN basic weak encryption requested
2641
1:main│ │ │ └─ algo="xor"
2742
1:main│ │ ├─┬─ Xms DEBUG basic response sent
2843
1:main│ │ │ └─ length=8
2944
1:main│ │ ├─ Xms DEBUG basic disconnected
30-
1:main│ │┌┘basic::conn peer_addr="82.9.9.9", port=42381
31-
1:main│ ├┘basic::server host="localhost", port=8080
32-
1:main│ ├┐basic::server host="localhost", port=8080
33-
1:main│ │└┐basic::conn peer_addr="8.8.8.8", port=18230
45+
1:main│ │┌┴┬─ basic::conn peer_addr="82.9.9.9"
46+
1:main│ ││ └─ port=42381
47+
1:main│ ├┴┬─ basic::server host="localhost"
48+
1:main│ │ └─ port=8080
49+
1:main│ ├┬─┬─ basic::server host="localhost"
50+
1:main│ ││ └─ port=8080
51+
1:main│ │└┬─┬─ basic::conn peer_addr="8.8.8.8"
52+
1:main│ │ │ └─ port=18230
3453
1:main│ │ ├─┬─ Xms DEBUG basic message received
3554
1:main│ │ │ └─ length=5
3655
1:main│ │ ├─┬─ Xms DEBUG basic response sent
3756
1:main│ │ │ └─ length=8
3857
1:main│ │ ├─ Xms DEBUG basic disconnected
39-
1:main│ │┌┘basic::conn peer_addr="8.8.8.8", port=18230
40-
1:main│ ├┘basic::server host="localhost", port=8080
58+
1:main│ │┌┴┬─ basic::conn peer_addr="8.8.8.8"
59+
1:main│ ││ └─ port=18230
60+
1:main│ ├┴┬─ basic::server host="localhost"
61+
1:main│ │ └─ port=8080
4162
1:main│ ├─ Xs WARN basic internal error
4263
1:main│ ├─ Xs ERROR basic this is a log message
4364
1:main│ ├─ Xs INFO basic exit
44-
1:main│┌┘basic::server host="localhost", port=8080
65+
1:main│┌┴┬─ basic::server host="localhost"
66+
1:main││ └─ port=8080
4567
1:main├┘basic::hierarchical-example version=0.1
4668
1:main┘basic::hierarchical-example version=0.1

examples/quiet.stdout

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,32 @@
11
1:main┐quiet::hierarchical-example version=0.1
2-
1:main├─┐quiet::server host="localhost", port=8080
2+
1:main├─┬─┬─ quiet::server host="localhost"
3+
1:main│ │ └─ port=8080
34
1:main│ ├─ Xms INFO quiet starting
45
1:main│ ├─ Xms INFO quiet listening
5-
1:main│ ├─┐quiet::conn peer_addr="82.9.9.9", port=42381
6+
1:main│ ├─┬─┬─ quiet::conn peer_addr="82.9.9.9"
7+
1:main│ │ │ └─ port=42381
68
1:main│ │ ├─ Xms DEBUG quiet connected
79
1:main│ │ ├─┬─ Xms DEBUG quiet message received
810
1:main│ │ │ └─ length=2
911
1:main│ ├─┘
10-
1:main│ ├─┐quiet::conn peer_addr="8.8.8.8", port=18230
12+
1:main│ ├─┬─┬─ quiet::conn peer_addr="8.8.8.8"
13+
1:main│ │ │ └─ port=18230
1114
1:main│ │ ├─ Xms DEBUG quiet connected
1215
1:main│ ├─┘
13-
1:main│ ├─┐quiet::foomp 42 <- format string, normal_var=43
16+
1:main│ ├─┬─┬─ quiet::foomp 42 <- format string
17+
1:main│ │ │ └─ normal_var=43
1418
1:main│ │ ├─ Xms ERROR quiet hello
1519
1:main│ ├─┘
16-
1:main│ ├─┐quiet::conn peer_addr="82.9.9.9", port=42381
20+
1:main│ ├─┬─┬─ quiet::conn peer_addr="82.9.9.9"
21+
1:main│ │ │ └─ port=42381
1722
1:main│ │ ├─┬─ Xms WARN quiet weak encryption requested
1823
1:main│ │ │ └─ algo="xor"
1924
1:main│ │ ├─┬─ Xms DEBUG quiet response sent
2025
1:main│ │ │ └─ length=8
2126
1:main│ │ ├─ Xms DEBUG quiet disconnected
2227
1:main│ ├─┘
23-
1:main│ ├─┐quiet::conn peer_addr="8.8.8.8", port=18230
28+
1:main│ ├─┬─┬─ quiet::conn peer_addr="8.8.8.8"
29+
1:main│ │ │ └─ port=18230
2430
1:main│ │ ├─┬─ Xms DEBUG quiet message received
2531
1:main│ │ │ └─ length=5
2632
1:main│ │ ├─┬─ Xms DEBUG quiet response sent

src/format.rs

Lines changed: 88 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -291,14 +291,18 @@ fn indent_block_with_lines(
291291
let mut s = String::with_capacity(indent_spaces + prefix.len());
292292
s.push_str(prefix);
293293

294-
// instead of using all spaces to indent, draw a vertical line at every indent level
295-
// up until the last indent
296-
for i in 0..(indent_spaces - indent_amount) {
294+
let indent = |s: &mut String, i| {
297295
if i % indent_amount == 0 {
298296
s.push_str(LINE_VERT);
299297
} else {
300298
s.push(' ');
301299
}
300+
};
301+
302+
// instead of using all spaces to indent, draw a vertical line at every indent level
303+
// up until the last indent
304+
for i in 0..(indent_spaces - indent_amount) {
305+
indent(&mut s, i)
302306
}
303307

304308
// draw branch
@@ -310,14 +314,44 @@ fn indent_block_with_lines(
310314
for _ in 1..(indent_amount / 2) {
311315
buf.push_str(LINE_HORIZ);
312316
}
313-
buf.push_str(LINE_OPEN);
317+
if lines.len() > 1 {
318+
buf.push_str(ARGS_BRANCH);
319+
for _ in 1..indent_amount {
320+
buf.push_str(LINE_HORIZ);
321+
}
322+
buf.push_str(ARGS_BRANCH);
323+
for _ in 1..indent_amount {
324+
buf.push_str(LINE_HORIZ);
325+
}
326+
buf.push_str(" ");
327+
for i in 0..(indent_amount - 1) {
328+
indent(&mut s, i)
329+
}
330+
} else {
331+
buf.push_str(LINE_OPEN);
332+
}
314333
}
315334
SpanMode::Open { verbose: false } => {
316335
buf.push_str(LINE_BRANCH);
317336
for _ in 1..indent_amount {
318337
buf.push_str(LINE_HORIZ);
319338
}
320-
buf.push_str(LINE_OPEN);
339+
if lines.len() > 1 {
340+
buf.push_str(ARGS_BRANCH);
341+
for _ in 1..indent_amount {
342+
buf.push_str(LINE_HORIZ);
343+
}
344+
buf.push_str(ARGS_BRANCH);
345+
for _ in 1..indent_amount {
346+
buf.push_str(LINE_HORIZ);
347+
}
348+
buf.push_str(" ");
349+
for i in 0..indent_amount {
350+
indent(&mut s, i)
351+
}
352+
} else {
353+
buf.push_str(LINE_OPEN);
354+
}
321355
}
322356
SpanMode::Open { verbose: true } => {
323357
buf.push_str(LINE_VERT);
@@ -333,7 +367,22 @@ fn indent_block_with_lines(
333367
}
334368
// We don't have the space for fancy rendering at single space indent.
335369
if indent_amount > 1 {
336-
buf.push_str(LINE_OPEN);
370+
if lines.len() > 1 {
371+
buf.push_str(ARGS_BRANCH);
372+
for _ in 1..indent_amount {
373+
buf.push_str(LINE_HORIZ);
374+
}
375+
buf.push_str(ARGS_BRANCH);
376+
for _ in 1..indent_amount {
377+
buf.push_str(LINE_HORIZ);
378+
}
379+
buf.push_str(" ");
380+
for i in 0..indent_amount {
381+
indent(&mut s, i)
382+
}
383+
} else {
384+
buf.push_str(LINE_OPEN);
385+
}
337386
} else {
338387
buf.push_str(LINE_VERT);
339388
}
@@ -359,7 +408,22 @@ fn indent_block_with_lines(
359408
}
360409
// We don't have the space for fancy rendering at single space indent.
361410
if indent_amount > 1 {
362-
buf.push_str(LINE_CLOSE);
411+
if lines.len() > 1 {
412+
buf.push_str("┴");
413+
for _ in 1..indent_amount - 1 {
414+
buf.push_str(LINE_HORIZ);
415+
}
416+
buf.push_str("┬");
417+
for _ in 1..indent_amount {
418+
buf.push_str(LINE_HORIZ);
419+
}
420+
buf.push_str(" ");
421+
for i in 0..indent_amount - 1 {
422+
indent(&mut s, i)
423+
}
424+
} else {
425+
buf.push_str(LINE_CLOSE);
426+
}
363427
} else {
364428
buf.push_str(LINE_VERT);
365429
}
@@ -369,7 +433,22 @@ fn indent_block_with_lines(
369433
for _ in 1..(indent_amount / 2) {
370434
buf.push_str(LINE_HORIZ);
371435
}
372-
buf.push_str(LINE_CLOSE);
436+
if lines.len() > 1 {
437+
buf.push_str("┴");
438+
for _ in 1..indent_amount - 1 {
439+
buf.push_str(LINE_HORIZ);
440+
}
441+
buf.push_str("┬");
442+
for _ in 1..indent_amount {
443+
buf.push_str(LINE_HORIZ);
444+
}
445+
buf.push_str(" ");
446+
for i in 0..indent_amount - 2 {
447+
indent(&mut s, i)
448+
}
449+
} else {
450+
buf.push_str(LINE_CLOSE);
451+
}
373452
}
374453
SpanMode::Event => {
375454
buf.push_str(LINE_BRANCH);
@@ -392,11 +471,7 @@ fn indent_block_with_lines(
392471
// add the rest of the indentation, since we don't want to draw horizontal lines
393472
// for subsequent lines
394473
for i in 0..indent_amount {
395-
if i % indent_amount == 0 {
396-
s.push_str(LINE_VERT);
397-
} else {
398-
s.push(' ');
399-
}
474+
indent(&mut s, i)
400475
}
401476

402477
// add all of the actual content, with each line preceded by the indent string

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ where
220220
}
221221
}
222222
for (k, v) in kvs {
223-
write!(buf, ", {}={}", k, v)?;
223+
write!(buf, "\n {}={}", k, v)?;
224224
}
225225
Ok(())
226226
}

0 commit comments

Comments
 (0)