Coverage Report

Created: 2026-10-28 07:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibMarkdown/Table.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2020-2022, the SerenityOS developers.
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <AK/OwnPtr.h>
10
#include <LibMarkdown/Block.h>
11
#include <LibMarkdown/LineIterator.h>
12
#include <LibMarkdown/Text.h>
13
14
namespace Markdown {
15
16
class Table final : public Block {
17
public:
18
    enum class Alignment {
19
        Center,
20
        Left,
21
        Right,
22
    };
23
24
    struct Column {
25
        Text header;
26
        Vector<Text> rows;
27
        Alignment alignment { Alignment::Left };
28
        size_t relative_width { 0 };
29
30
        RecursionDecision walk(Visitor&) const;
31
    };
32
33
6.54k
    Table() = default;
34
6.54k
    virtual ~Table() override = default;
35
36
    virtual ByteString render_to_html(bool tight = false) const override;
37
    virtual Vector<ByteString> render_lines_for_terminal(size_t view_width = 0) const override;
38
    virtual RecursionDecision walk(Visitor&) const override;
39
    static OwnPtr<Table> parse(LineIterator& lines);
40
41
0
    Vector<Column> const& columns() const { return m_columns; }
42
43
private:
44
    Vector<Column> m_columns;
45
    size_t m_total_width { 1 };
46
    size_t m_row_count { 0 };
47
};
48
49
}