mustWriteString
Vladimir Bauer
3 years ago
| 459 | 459 | for _, d := range s.pDecorators { |
| 460 | 460 | str := d.Decor(stat) |
| 461 | 461 | stat.AvailableWidth -= runewidth.StringWidth(stripansi.Strip(str)) |
| 462 | _, err := bufP.WriteString(str) | |
| 463 | if err != nil { | |
| 464 | panic(err) | |
| 465 | } | |
| 462 | mustWriteString(bufP, str) | |
| 466 | 463 | } |
| 467 | 464 | if stat.AvailableWidth < 1 { |
| 468 | 465 | trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(bufP.String()), tw, "…")) |
| 471 | 468 | } |
| 472 | 469 | |
| 473 | 470 | if !s.trimSpace && stat.AvailableWidth > 1 { |
| 471 | mustWriteString(bufB, " ") | |
| 472 | defer mustWriteString(bufB, " ") | |
| 474 | 473 | stat.AvailableWidth -= 2 |
| 475 | bufB.WriteByte(' ') | |
| 476 | defer bufB.WriteByte(' ') | |
| 477 | 474 | } |
| 478 | 475 | |
| 479 | 476 | tw = stat.AvailableWidth |
| 480 | 477 | for _, d := range s.aDecorators { |
| 481 | 478 | str := d.Decor(stat) |
| 482 | 479 | stat.AvailableWidth -= runewidth.StringWidth(stripansi.Strip(str)) |
| 483 | _, err := bufA.WriteString(str) | |
| 484 | if err != nil { | |
| 485 | panic(err) | |
| 486 | } | |
| 480 | mustWriteString(bufA, str) | |
| 487 | 481 | } |
| 488 | 482 | if stat.AvailableWidth < 1 { |
| 489 | 483 | trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(bufA.String()), tw, "…")) |
| 611 | 605 | } |
| 612 | 606 | return d |
| 613 | 607 | } |
| 608 | ||
| 609 | func mustWriteString(sw io.StringWriter, str string) { | |
| 610 | _, err := sw.WriteString(str) | |
| 611 | if err != nil { | |
| 612 | panic(err) | |
| 613 | } | |
| 614 | } | |