rustyphoenixclockmockbackend 1.7.0

This is the Rust version of https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/PhoenixClock project. This project aims to ease the use of clock in complex environments, especially distributed environments where latencies measurement has to be precise and reproductible when running unit tests. **PhoenixClock** provide **PGenericClock**, a template classe which takes two arguments : - The main clock backend (could be **clock**, **PClockNs** for nanoseconds, etc) - A mock of a clock, **PClockMock**, which can play, register and replay a sequence of clock calls These clocks are activated with a mode `PClockMode::PClockMode` which can be : - `PClockMode::NO_MOCK` : for a normal usage - `PClockMode::MOCK` : when the mock the desired clock is played - `PClockMode::MOCK_RECORD` : when the real clock backend is used but the clock mock is recording (could be usefull for debugging or to desing new unit tests quickly)
Documentation
[![pipeline status](https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/clock/RustyPhoenixClockMockBackend/badges/main/pipeline.svg?ignore_skipped=true)](https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/clock/RustyPhoenixClockMockBackend/-/pipelines)
[![Latest release](https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/clock/RustyPhoenixClockMockBackend/-/badges/release.svg)](https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/clock/RustyPhoenixClockMockBackend/-/releases)
[![coverage report](https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/clock/RustyPhoenixClockMockBackend/badges/main/coverage.svg)](https://cta-lapp.pages.in2p3.fr/PHOENIX_LIBS2/clock/RustyPhoenixClockBackend/coverage/index.html)
[![documentation](doc/images/documentation_logo.svg)](https://cta-lapp.pages.in2p3.fr/PHOENIX_LIBS2/clock/RustyPhoenixClockBackend/)
[![Phoenix2 documentation](https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/PHOENIX2/-/raw/e9bdfd51a202d7825f38cda136c9287f9cee3c1c/doc/badge_phoenix2_documentation.svg)](https://cta-lapp.pages.in2p3.fr/PHOENIX_LIBS2/PHOENIX2/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18683427.svg)](https://doi.org/10.5281/zenodo.18683427)


# Introduction

This is the Rust version of https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/PhoenixClock project.

This project aims to ease the use of clock in complex environments, especially distributed environments where latencies measurement has to be precise and reproductible when running unit tests.
**PhoenixClock** provide **PGenericClock**, a template classe which takes two arguments :
- The main clock backend (could be **clock**, **PClockNs** for nanoseconds, etc)
- A mock of a clock, **PClockMock**, which can play, register and replay a sequence of clock calls

These clocks are activated with a mode `PClockMode::PClockMode` which can be :
- `PClockMode::NO_MOCK` : for a normal usage
- `PClockMode::MOCK` : when the mock the desired clock is played
- `PClockMode::MOCK_RECORD` : when the real clock backend is used but the clock mock is recording (could be usefull for debugging or to desing new unit tests quickly)

# Code

https://gitlab.in2p3.fr/CTA-LAPP/RUSTY_PHOENIX/RustyPhoenixClockMockBackend

# Documentation

https://cta-lapp.pages.in2p3.fr/PHOENIX_LIBS2/clock/RustyPhoenixClockBackend/index.html

# Requirements

- cargo
- rustc
- [clock_backend]https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS2/clock/RustyPhoenixClockMockBackend
- [rusty_phoenix_data_stream]https://gitlab.in2p3.fr/CTA-LAPP/RUSTY_PHOENIX/RustyPhoenixDataStream.git

# Installation for Users

```
git clone https://gitlab.in2p3.fr/CTA-LAPP/RUSTY_PHOENIX/RustyPhoenixClockMockBackend.git
cd RustyPhoenixClockMockBackend
./install.sh
```