| 1943 | namespace indicators { |
| 1944 | |
| 1945 | class ProgressBar { |
| 1946 | using Settings = |
| 1947 | std::tuple<option::BarWidth, option::PrefixText, option::PostfixText, |
| 1948 | option::Start, option::End, option::Fill, option::Lead, |
| 1949 | option::Remainder, option::MaxPostfixTextLen, |
| 1950 | option::Completed, option::ShowPercentage, |
| 1951 | option::ShowElapsedTime, option::ShowRemainingTime, |
| 1952 | option::SavedStartTime, option::ForegroundColor, |
| 1953 | option::FontStyles, option::MinProgress, option::MaxProgress, |
| 1954 | option::ProgressType, option::Stream>; |
| 1955 | |
| 1956 | public: |
| 1957 | template <typename... Args, |
| 1958 | typename std::enable_if< |
| 1959 | details::are_settings_from_tuple< |
| 1960 | Settings, typename std::decay<Args>::type...>::value, |
| 1961 | void *>::type = nullptr> |
| 1962 | explicit ProgressBar(Args &&... args) |
| 1963 | : settings_( |
| 1964 | details::get<details::ProgressBarOption::bar_width>( |
| 1965 | option::BarWidth{100}, std::forward<Args>(args)...), |
| 1966 | details::get<details::ProgressBarOption::prefix_text>( |
| 1967 | option::PrefixText{}, std::forward<Args>(args)...), |
| 1968 | details::get<details::ProgressBarOption::postfix_text>( |
| 1969 | option::PostfixText{}, std::forward<Args>(args)...), |
| 1970 | details::get<details::ProgressBarOption::start>( |
| 1971 | option::Start{"["}, std::forward<Args>(args)...), |
| 1972 | details::get<details::ProgressBarOption::end>( |
| 1973 | option::End{"]"}, std::forward<Args>(args)...), |
| 1974 | details::get<details::ProgressBarOption::fill>( |
| 1975 | option::Fill{"="}, std::forward<Args>(args)...), |
| 1976 | details::get<details::ProgressBarOption::lead>( |
| 1977 | option::Lead{">"}, std::forward<Args>(args)...), |
| 1978 | details::get<details::ProgressBarOption::remainder>( |
| 1979 | option::Remainder{" "}, std::forward<Args>(args)...), |
| 1980 | details::get<details::ProgressBarOption::max_postfix_text_len>( |
| 1981 | option::MaxPostfixTextLen{0}, std::forward<Args>(args)...), |
| 1982 | details::get<details::ProgressBarOption::completed>( |
| 1983 | option::Completed{false}, std::forward<Args>(args)...), |
| 1984 | details::get<details::ProgressBarOption::show_percentage>( |
| 1985 | option::ShowPercentage{false}, std::forward<Args>(args)...), |
| 1986 | details::get<details::ProgressBarOption::show_elapsed_time>( |
| 1987 | option::ShowElapsedTime{false}, std::forward<Args>(args)...), |
| 1988 | details::get<details::ProgressBarOption::show_remaining_time>( |
| 1989 | option::ShowRemainingTime{false}, std::forward<Args>(args)...), |
| 1990 | details::get<details::ProgressBarOption::saved_start_time>( |
| 1991 | option::SavedStartTime{false}, std::forward<Args>(args)...), |
| 1992 | details::get<details::ProgressBarOption::foreground_color>( |
| 1993 | option::ForegroundColor{Color::unspecified}, |
| 1994 | std::forward<Args>(args)...), |
| 1995 | details::get<details::ProgressBarOption::font_styles>( |
| 1996 | option::FontStyles{std::vector<FontStyle>{}}, |
| 1997 | std::forward<Args>(args)...), |
| 1998 | details::get<details::ProgressBarOption::min_progress>( |
| 1999 | option::MinProgress{0}, std::forward<Args>(args)...), |
| 2000 | details::get<details::ProgressBarOption::max_progress>( |
| 2001 | option::MaxProgress{100}, std::forward<Args>(args)...), |
| 2002 | details::get<details::ProgressBarOption::progress_type>( |
nothing calls this directly
no outgoing calls
no test coverage detected