# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog][keepachangelog], and this project adheres to [Semantic Versioning][semver].

## Table of contents

1. [Unreleased](#unreleased)
1. [v3.0.2](#v3.0.2)
    1. [v3.0.1](#v3.0.1)
    1. [v3.0.0](#v3.0.0)
1. [v2.2.3](#v2.2.3)
    1. [v2.2.2](#v2.2.2)
        1. [v2.2.1](#v2.2.1)
        1. [v2.2.0](#v2.2.0)
    1. [v2.1.0](#v2.1.0)
    1. [v2.0.2](#v2.0.2)
        1. [v2.0.1](#v2.0.1)
        1. [v2.0.0](#v2.0.0)
1. [v1.0.3](#v1.0.3)
    1. [v1.0.2](#v1.0.2)

## [Unreleased][github/self/unreleased] 

### Added 

\-

### Changed 

\-

### Deprecated 

\- Detailled documentation is missing, though examples are good.

### Removed 

\-

### Fixed 

\-

### Security 

\-

## [v3.0.2][github/self/v3.0.2] 

### Deprecated 

- Detailled documentation is missing, though examples are good.

### Fixed 

- Fix typo in README

## [v3.0.1][github/self/v3.0.1] 

### Deprecated 

- Detailled documentation is missing, though examples are good.

### Fixed 

- Code-examples in README are being updated.

## [v3.0.0][github/self/v3.0.0] 

### Added 

- Add `rustfmt` to github-workflows.
- Add tests running examples (hence remove them from GitHub-workflow).
- Add wrapping `TimedBar` for approximating remaining time.
- Add printing bar dependent on relative progress (`has_progressed_significantly()` + `remember_significant_progress()`).

### Changed 

- Update README.
- Cleanup `Cargo.toml`
- Make implementation much more explicit and easier by removing `reprint(...)` and refactoring `Bar`:
  - Change data-types to more convenient ones (e.g. u32 -> usize).
  - Implement `add(...)` based on `set(...)`
  - Implement other calculations for progress to support a generic progress-calculation.
    They are implemented only for some types, e.g. `usize`, `u64`, `f64`, `i64`, but new ones can be added easily.
  - Implement style using a `String` (e.g. `[=>-]` -> `(#..)`)
  - Hold on style-guidelines (`new()` without parameters, `with(cfg: Config)` for convenient constructors)
  - Use `pub(crate)` for better control of visibility.
  - Implement `timed(self)` to get a timed bar.
  - Rename bars to support usage of modules explicitly (e.g. `use mapping::Bar as MappingBar` or `use progressing::mapping::Bar as ProgressingMappingBar` etc. instead of `use mapping::MappingBar` or `use progressing::MappingBar`)

### Deprecated 

- Detailled documentation is missing, though examples are good.
- The README shows old code..

### Removed 

- Remove `reprint(...)`-functions since they are dependent on the used writer/channel.
  -> Update examples.

## [v2.2.3][github/self/v2.2.3] 

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>---]` -> `[====o---]`)

### Fixed 

- Fix __badge-link__ for license in `README.md`.

## [v2.2.2][github/self/v2.2.2] 

### Changed 

- Change style of __LICENSE__ and write it with `markdown`.
- Replace branch `master` by `nightly`.

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>---]` -> `[====o---]`)

## [v2.2.1][github/self/v2.2.1] 

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>---]` -> `[====o---]`)

### Fixed 

- Fix URL in README.

## [v2.2.0][github/self/v2.2.0] 

### Added 

- Add `start(...)` and `end(...)` for `BernoulliBar` according to `MappingBar`.

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>---]` -> `[====o---]`)
- README has wrong URL.

## [v2.1.0][github/self/v2.1.0] 

### Added 

- `GitHub`-workflow auto-testing and -publishing to `crates.io` if `Cargo.toml` changes version and tests are successful.
- Add a little documentation to `struct`s with little examples from `simple`-example.
- Add support for `usize` for `MappingBar`.

### Changed 

- Move `structs` in own `modules`.
- Change bar-style slightly: `[====>   ]` -> `[====>---]`

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>   ]` -> `[----o   ]`)

## [v2.0.2][github/self/v2.0.2] 

### Fixed 

- `README.md` has had invalid code, which as been edited as in `examples`.

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>   ]` -> `[----o   ]`)

## [v2.0.1][github/self/v2.0.1] 

### Changed 

- Changelog has been edited accordingly.

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>   ]` -> `[----o   ]`)

## [v2.0.0][github/self/v2.0.0] 

### Added 

- Add access to a bar's `progress`.
- Extend `BernoulliProgress`
  - Implement some useful traits like `Add` and `Copy`.
  - Implement automatic `into()` for tuples (`(successes, attempts)`) or successes (`u32` or `bool`).
  - Implement constructing method `new()` and `Default`.

### Changed 

- `ID`s in `CHANGELOG.md` since underscores (`_`) are preferred over dots (`.`) in `URL`s, but `v1103` could stand for `v11.0.3` and `v1.10.3`.

### Deprecated 

- Detailled documentation is missing, though examples are good.
- Bar-styles to easily and safely configure bar-styles (e.g. `[====>   ]` -> `[----o   ]`)
- Changelog has been forgotten to adapt..

## [v1.0.3][github/self/v1.0.3] 

### Added 

- Implement `CHANGELOG.md`

### Deprecated 

- `BernoulliProgress` has no constructing method like `new()` and no default-implementation.
- Detailled documentation is missing, though examples are good.

## [v1.0.2][github/self/v1.0.2] 

### Added 

- Setup repo with license, readme, .gitignore etc.
  - Add nice `examples`.
- Implement 3 different `progressbars` and let them accept values outside of their intervals.
  - One is clamping `float`s to `[0, 1]`.
  - One is counting and mapping `i32` or `u32` from `[a, b]` to `[0, 1]`.
  - One is counting successes and attempts for a given goal `n`.
- Change a bar's progress via methods `set` and `add` using
  - `BernoulliProgress` (which is `pub`)- Support for `GitHub-workflow` is missing, which can, besides testing, automatically deploy to `crates.io` and tag if `Cargo.toml` changes version.
- `CHANGELOG.md` is missing
- `BernoulliProgress` has no constructing method like `new()` and no default-implementation.
- Detailled documentation is missing, though examples are good.


[keepachangelog]: https://keepachangelog.com/en/
[semver]: https://semver.org/

[github/self/unreleased]: https://github.com/dominicparga/progressing/compare/v3.0.2...HEAD
[github/self/v3.0.2]: https://github.com/dominicparga/progressing/compare/v3.0.1...v3.0.2
[github/self/v3.0.1]: https://github.com/dominicparga/progressing/compare/v3.0.0...v3.0.1
[github/self/v3.0.0]: https://github.com/dominicparga/progressing/compare/v2.2.2...v3.0.0
[github/self/v2.2.2]: https://github.com/dominicparga/progressing/compare/v2.2.1...v2.2.2
[github/self/v2.2.1]: https://github.com/dominicparga/progressing/compare/v2.2.0...v2.2.1
[github/self/v2.2.0]: https://github.com/dominicparga/progressing/compare/v2.1.0...v2.2.0
[github/self/v2.1.0]: https://github.com/dominicparga/progressing/compare/v2.0.2...v2.1.0
[github/self/v2.0.2]: https://github.com/dominicparga/progressing/compare/v2.0.1...v2.0.2
[github/self/v2.0.1]: https://github.com/dominicparga/progressing/compare/v2.0.0...v2.0.1
[github/self/v2.0.0]: https://github.com/dominicparga/progressing/compare/v1.0.3...v2.0.0
[github/self/v1.0.3]: https://github.com/dominicparga/progressing/compare/v1.0.2...v1.0.3
[github/self/v1.0.2]: https://github.com/dominicparga/progressing/releases/tag/v1.0.2
