core

Core library for implementing Battle of the Centerländ.

Installation

To be able to use this crate, add it to your Cargo.toml:

toml [dependencies] botc-core = { package = "uulm-sopra23-group03-core", version = "0.4" }

While the package is named uulm-sopra23-group03-core this adds it to your project as botc-core.

Features

There are features not enabled by default for specific use cases.

toml [dependencies] botc-core = { package = "uulm-sopra23-group03-core", version = "0.4", features = ["client"] }

To enable a feature, specify it with the dependency in your Cargo.toml:

| Feature | Description | |----------|------------------------------------------------------------------------------------------------------------------------------| | client | Enables sink/stream based client functionality with the client module. Can be used for implementing a client for the game. | | ai | Enables the ai with training data structures. |


Build

Prerequisites

Everything can be installed with rustup:

```

Update rustup's information.

rustup update

Install the stable Rust toolchain (if not already present).

rustup toolchain add stable

Add rustfmt.

rustup component add rustfmt

Add clippy.

rustup component add clippy ```

Testing

Code Formatting

This should not output anything when the code is formatted corretcly:

cargo fmt --check

Run the following to automatically format the Rust code:

cargo fmt

Code Analysis

Run the following to check the code for common mistakes:

cargo clippy --all-features

Tests

Run tests with the following:

cargo test --all-features

Documentation

Documentation for the local version of the crate can be built and opened with the following:

cargo doc --all-features --open