[A] Added some docs for C++
This commit is contained in:
parent
59718f4f8d
commit
fb6d6c0acc
@ -8,14 +8,14 @@ int main()
|
|||||||
fort::Table table;
|
fort::Table table;
|
||||||
// Fill table with data
|
// Fill table with data
|
||||||
table << fort::header
|
table << fort::header
|
||||||
<< "Rank" << "Title" << "Year" << "Rating" << fort::endl
|
<< "Rank" << "Title" << "Year" << "Rating" << fort::endr
|
||||||
<< "1" << "The Shawshank Redemption" << "1994" << "9.5" << fort::endl
|
<< "1" << "The Shawshank Redemption" << "1994" << "9.5" << fort::endr
|
||||||
<< "2" << "12 Angry Men" << "1957" << "8.8" << fort::endl
|
<< "2" << "12 Angry Men" << "1957" << "8.8" << fort::endr
|
||||||
<< "3" << "It's a Wonderful Life" << "1946" << "8.6" << fort::endl
|
<< "3" << "It's a Wonderful Life" << "1946" << "8.6" << fort::endr
|
||||||
<< fort::separator
|
<< fort::separator
|
||||||
<< "4" << "2001: A Space Odyssey" << "1968" << "8.5" << fort::endl
|
<< "4" << "2001: A Space Odyssey" << "1968" << "8.5" << fort::endr
|
||||||
<< "5" << "Blade Runner" << "1982" << "8.1" << fort::endl
|
<< "5" << "Blade Runner" << "1982" << "8.1" << fort::endr
|
||||||
<< fort::endl;
|
<< fort::endr;
|
||||||
std::cout << table.to_string() << std::endl;
|
std::cout << table.to_string() << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,6 +30,8 @@ int main()
|
|||||||
table.write_ln("3", "It's a Wonderful Life", "1946", "8.6");
|
table.write_ln("3", "It's a Wonderful Life", "1946", "8.6");
|
||||||
table.write_ln("4", "2001: A Space Odyssey", "1968", "8.5");
|
table.write_ln("4", "2001: A Space Odyssey", "1968", "8.5");
|
||||||
table.write_ln("5", "Blade Runner", "1982", "8.1");
|
table.write_ln("5", "Blade Runner", "1982", "8.1");
|
||||||
|
|
||||||
|
table.set_border_style(FT_SOLID_STYLE);
|
||||||
std::cout << table.to_string();
|
std::cout << table.to_string();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
10
lib/fort.c
10
lib/fort.c
@ -2350,7 +2350,7 @@ struct ft_border_style *FT_FRAME_STYLE = (struct ft_border_style *) &FORT_FRAME
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void set_border_options_for_options(fort_table_options_t *options, struct ft_border_style *style)
|
static void set_border_options_for_options(fort_table_options_t *options, const struct ft_border_style *style)
|
||||||
{
|
{
|
||||||
if ((struct fort_border_style *)style == &FORT_BASIC_STYLE
|
if ((struct fort_border_style *)style == &FORT_BASIC_STYLE
|
||||||
|| (struct fort_border_style *)style == &FORT_BASIC2_STYLE
|
|| (struct fort_border_style *)style == &FORT_BASIC2_STYLE
|
||||||
@ -2369,8 +2369,8 @@ static void set_border_options_for_options(fort_table_options_t *options, struct
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ft_border_chars *border_chs = &(style->border_chs);
|
const struct ft_border_chars *border_chs = &(style->border_chs);
|
||||||
struct ft_border_chars *header_border_chs = &(style->header_border_chs);
|
const struct ft_border_chars *header_border_chs = &(style->header_border_chs);
|
||||||
|
|
||||||
#define BOR_CHARS options->border_style.border_chars
|
#define BOR_CHARS options->border_style.border_chars
|
||||||
#define H_BOR_CHARS options->border_style.header_border_chars
|
#define H_BOR_CHARS options->border_style.header_border_chars
|
||||||
@ -2433,13 +2433,13 @@ static void set_border_options_for_options(fort_table_options_t *options, struct
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ft_set_default_border_style(struct ft_border_style *style)
|
int ft_set_default_border_style(const struct ft_border_style *style)
|
||||||
{
|
{
|
||||||
set_border_options_for_options(&g_table_options, style);
|
set_border_options_for_options(&g_table_options, style);
|
||||||
return FT_SUCCESS;
|
return FT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ft_set_border_style(ft_table_t *table, struct ft_border_style *style)
|
int ft_set_border_style(ft_table_t *table, const struct ft_border_style *style)
|
||||||
{
|
{
|
||||||
assert(table);
|
assert(table);
|
||||||
if (table->options == NULL) {
|
if (table->options == NULL) {
|
||||||
|
@ -563,7 +563,7 @@ int ft_add_separator(ft_table_t *table);
|
|||||||
* Formatted table.
|
* Formatted table.
|
||||||
* @return
|
* @return
|
||||||
* - The pointer to the string representation of formatted table, on success.
|
* - The pointer to the string representation of formatted table, on success.
|
||||||
* - NULL on error with ft_errno set appropriately.
|
* - NULL on error.
|
||||||
*/
|
*/
|
||||||
const char *ft_to_string(const ft_table_t *table);
|
const char *ft_to_string(const ft_table_t *table);
|
||||||
|
|
||||||
@ -631,7 +631,7 @@ extern struct ft_border_style *FT_FRAME_STYLE;
|
|||||||
* - 0: Success; default border style was changed.
|
* - 0: Success; default border style was changed.
|
||||||
* - (<0): In case of error
|
* - (<0): In case of error
|
||||||
*/
|
*/
|
||||||
int ft_set_default_border_style(struct ft_border_style *style);
|
int ft_set_default_border_style(const struct ft_border_style *style);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set border style for the table.
|
* Set border style for the table.
|
||||||
@ -644,7 +644,7 @@ int ft_set_default_border_style(struct ft_border_style *style);
|
|||||||
* - 0: Success; table border style was changed.
|
* - 0: Success; table border style was changed.
|
||||||
* - (<0): In case of error
|
* - (<0): In case of error
|
||||||
*/
|
*/
|
||||||
int ft_set_border_style(ft_table_t *table, struct ft_border_style *style);
|
int ft_set_border_style(ft_table_t *table, const struct ft_border_style *style);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
56
lib/fort.hpp
56
lib/fort.hpp
@ -54,13 +54,13 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
const TableManipulator header(0);
|
const TableManipulator header(0);
|
||||||
const TableManipulator endl(1);
|
const TableManipulator endr(1);
|
||||||
const TableManipulator separator(2);
|
const TableManipulator separator(2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table - here is a short description.
|
* Table - formatted table.
|
||||||
*
|
*
|
||||||
* Here is detailed description.
|
* Table class is a C++ wrapper around struct ft_table.
|
||||||
*/
|
*/
|
||||||
class Table {
|
class Table {
|
||||||
public:
|
public:
|
||||||
@ -76,6 +76,13 @@ public:
|
|||||||
ft_destroy_table(table);
|
ft_destroy_table(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert table to string representation.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - String representation of formatted table, on success.
|
||||||
|
* - In case of error std::runtime_error is thrown.
|
||||||
|
*/
|
||||||
std::string to_string() const
|
std::string to_string() const
|
||||||
{
|
{
|
||||||
const char *str = ft_to_string(table);
|
const char *str = ft_to_string(table);
|
||||||
@ -84,11 +91,37 @@ public:
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert table to string representation.
|
||||||
|
*
|
||||||
|
* Table object has ownership of the returned pointer. So there is no need to
|
||||||
|
* free it. To take ownership user should explicitly copy the returned
|
||||||
|
* string with strdup or similar functions.
|
||||||
|
*
|
||||||
|
* Returned pointer may be later invalidated by:
|
||||||
|
* - Calling destroying the table;
|
||||||
|
* - Other invocations of c_str or to_string.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - The pointer to the string representation of formatted table, on success.
|
||||||
|
* - NULL on error.
|
||||||
|
*/
|
||||||
const char *c_str() const
|
const char *c_str() const
|
||||||
{
|
{
|
||||||
return ft_to_string(table);
|
return ft_to_string(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write provided object to the the table.
|
||||||
|
*
|
||||||
|
* To convert object to the string representation conversion for
|
||||||
|
* std::ostream is used.
|
||||||
|
*
|
||||||
|
* @param arg
|
||||||
|
* Obect that would be inserted in the current cell.
|
||||||
|
* @return
|
||||||
|
* - Reference to the current table.
|
||||||
|
*/
|
||||||
template <typename T>
|
template <typename T>
|
||||||
Table &operator<<(const T &arg)
|
Table &operator<<(const T &arg)
|
||||||
{
|
{
|
||||||
@ -104,7 +137,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (arg.value == header.value)
|
if (arg.value == header.value)
|
||||||
ft_set_cell_option(table, FT_CUR_ROW, FT_ANY_ROW, FT_COPT_ROW_TYPE, FT_ROW_HEADER);
|
ft_set_cell_option(table, FT_CUR_ROW, FT_ANY_ROW, FT_COPT_ROW_TYPE, FT_ROW_HEADER);
|
||||||
else if (arg.value == endl.value)
|
else if (arg.value == endr.value)
|
||||||
ft_ln(table);
|
ft_ln(table);
|
||||||
else if (arg.value == separator.value)
|
else if (arg.value == separator.value)
|
||||||
ft_add_separator(table);
|
ft_add_separator(table);
|
||||||
@ -235,6 +268,21 @@ public:
|
|||||||
#endif /* __cpp_variadic_templates */
|
#endif /* __cpp_variadic_templates */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set border style for the table.
|
||||||
|
*
|
||||||
|
* @param style
|
||||||
|
* Pointer to border style.
|
||||||
|
* @return
|
||||||
|
* - True: Success; table border style was changed.
|
||||||
|
* - False: Error
|
||||||
|
*/
|
||||||
|
bool set_border_style(struct ft_border_style *style)
|
||||||
|
{
|
||||||
|
return FT_IS_SUCCESS(ft_set_border_style(table, style));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ft_table_t *table;
|
ft_table_t *table;
|
||||||
std::stringstream stream;
|
std::stringstream stream;
|
||||||
|
@ -809,7 +809,7 @@ struct ft_border_style *FT_FRAME_STYLE = (struct ft_border_style *) &FORT_FRAME
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void set_border_options_for_options(fort_table_options_t *options, struct ft_border_style *style)
|
static void set_border_options_for_options(fort_table_options_t *options, const struct ft_border_style *style)
|
||||||
{
|
{
|
||||||
if ((struct fort_border_style *)style == &FORT_BASIC_STYLE
|
if ((struct fort_border_style *)style == &FORT_BASIC_STYLE
|
||||||
|| (struct fort_border_style *)style == &FORT_BASIC2_STYLE
|
|| (struct fort_border_style *)style == &FORT_BASIC2_STYLE
|
||||||
@ -828,8 +828,8 @@ static void set_border_options_for_options(fort_table_options_t *options, struct
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ft_border_chars *border_chs = &(style->border_chs);
|
const struct ft_border_chars *border_chs = &(style->border_chs);
|
||||||
struct ft_border_chars *header_border_chs = &(style->header_border_chs);
|
const struct ft_border_chars *header_border_chs = &(style->header_border_chs);
|
||||||
|
|
||||||
#define BOR_CHARS options->border_style.border_chars
|
#define BOR_CHARS options->border_style.border_chars
|
||||||
#define H_BOR_CHARS options->border_style.header_border_chars
|
#define H_BOR_CHARS options->border_style.header_border_chars
|
||||||
@ -892,13 +892,13 @@ static void set_border_options_for_options(fort_table_options_t *options, struct
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ft_set_default_border_style(struct ft_border_style *style)
|
int ft_set_default_border_style(const struct ft_border_style *style)
|
||||||
{
|
{
|
||||||
set_border_options_for_options(&g_table_options, style);
|
set_border_options_for_options(&g_table_options, style);
|
||||||
return FT_SUCCESS;
|
return FT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ft_set_border_style(ft_table_t *table, struct ft_border_style *style)
|
int ft_set_border_style(ft_table_t *table, const struct ft_border_style *style)
|
||||||
{
|
{
|
||||||
assert(table);
|
assert(table);
|
||||||
if (table->options == NULL) {
|
if (table->options == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user