Skip to content

Commit 4a7232c

Browse files
committed
Put span fields on their own lines in line rendering mode
1 parent ca89ff9 commit 4a7232c

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
@@ -290,14 +290,18 @@ fn indent_block_with_lines(
290290
let mut s = String::with_capacity(indent_spaces + prefix.len());
291291
s.push_str(prefix);
292292

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

303307
// draw branch
@@ -309,14 +313,44 @@ fn indent_block_with_lines(
309313
for _ in 1..(indent_amount / 2) {
310314
buf.push_str(LINE_HORIZ);
311315
}
312-
buf.push_str(LINE_OPEN);
316+
if lines.len() > 1 {
317+
buf.push_str(ARGS_BRANCH);
318+
for _ in 1..indent_amount {
319+
buf.push_str(LINE_HORIZ);
320+
}
321+
buf.push_str(ARGS_BRANCH);
322+
for _ in 1..indent_amount {
323+
buf.push_str(LINE_HORIZ);
324+
}
325+
buf.push_str(" ");
326+
for i in 0..(indent_amount - 1) {
327+
indent(&mut s, i)
328+
}
329+
} else {
330+
buf.push_str(LINE_OPEN);
331+
}
313332
}
314333
SpanMode::Open { verbose: false } => {
315334
buf.push_str(LINE_BRANCH);
316335
for _ in 1..indent_amount {
317336
buf.push_str(LINE_HORIZ);
318337
}
319-
buf.push_str(LINE_OPEN);
338+
if lines.len() > 1 {
339+
buf.push_str(ARGS_BRANCH);
340+
for _ in 1..indent_amount {
341+
buf.push_str(LINE_HORIZ);
342+
}
343+
buf.push_str(ARGS_BRANCH);
344+
for _ in 1..indent_amount {
345+
buf.push_str(LINE_HORIZ);
346+
}
347+
buf.push_str(" ");
348+
for i in 0..indent_amount {
349+
indent(&mut s, i)
350+
}
351+
} else {
352+
buf.push_str(LINE_OPEN);
353+
}
320354
}
321355
SpanMode::Open { verbose: true } => {
322356
buf.push_str(LINE_VERT);
@@ -332,7 +366,22 @@ fn indent_block_with_lines(
332366
}
333367
// We don't have the space for fancy rendering at single space indent.
334368
if indent_amount > 1 {
335-
buf.push_str(LINE_OPEN);
369+
if lines.len() > 1 {
370+
buf.push_str(ARGS_BRANCH);
371+
for _ in 1..indent_amount {
372+
buf.push_str(LINE_HORIZ);
373+
}
374+
buf.push_str(ARGS_BRANCH);
375+
for _ in 1..indent_amount {
376+
buf.push_str(LINE_HORIZ);
377+
}
378+
buf.push_str(" ");
379+
for i in 0..indent_amount {
380+
indent(&mut s, i)
381+
}
382+
} else {
383+
buf.push_str(LINE_OPEN);
384+
}
336385
} else {
337386
buf.push_str(LINE_VERT);
338387
}
@@ -358,7 +407,22 @@ fn indent_block_with_lines(
358407
}
359408
// We don't have the space for fancy rendering at single space indent.
360409
if indent_amount > 1 {
361-
buf.push_str(LINE_CLOSE);
410+
if lines.len() > 1 {
411+
buf.push_str("┴");
412+
for _ in 1..indent_amount - 1 {
413+
buf.push_str(LINE_HORIZ);
414+
}
415+
buf.push_str("┬");
416+
for _ in 1..indent_amount {
417+
buf.push_str(LINE_HORIZ);
418+
}
419+
buf.push_str(" ");
420+
for i in 0..indent_amount - 1 {
421+
indent(&mut s, i)
422+
}
423+
} else {
424+
buf.push_str(LINE_CLOSE);
425+
}
362426
} else {
363427
buf.push_str(LINE_VERT);
364428
}
@@ -368,7 +432,22 @@ fn indent_block_with_lines(
368432
for _ in 1..(indent_amount / 2) {
369433
buf.push_str(LINE_HORIZ);
370434
}
371-
buf.push_str(LINE_CLOSE);
435+
if lines.len() > 1 {
436+
buf.push_str("┴");
437+
for _ in 1..indent_amount - 1 {
438+
buf.push_str(LINE_HORIZ);
439+
}
440+
buf.push_str("┬");
441+
for _ in 1..indent_amount {
442+
buf.push_str(LINE_HORIZ);
443+
}
444+
buf.push_str(" ");
445+
for i in 0..indent_amount - 2 {
446+
indent(&mut s, i)
447+
}
448+
} else {
449+
buf.push_str(LINE_CLOSE);
450+
}
372451
}
373452
SpanMode::Event => {
374453
buf.push_str(LINE_BRANCH);
@@ -391,11 +470,7 @@ fn indent_block_with_lines(
391470
// add the rest of the indentation, since we don't want to draw horizontal lines
392471
// for subsequent lines
393472
for i in 0..indent_amount {
394-
if i % indent_amount == 0 {
395-
s.push_str(LINE_VERT);
396-
} else {
397-
s.push(' ');
398-
}
473+
indent(&mut s, i)
399474
}
400475

401476
// 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)