kalkulator 0.2.1

A mathematical expression evaluation tool and library
Documentation

# Kalkulator

`kalkulator` is a versatile tool for mathematical expression evaluation, offering both a command-line interface for direct usage and a library for integration into Rust projects.

## Features

- Evaluate mathematical expressions with support for basic arithmatic operations, factorial, logical operations
- Convert expressions to postfix notation.
- Extendable for future operations and functionalities.

## Installation

### As a Command-Line Tool

Ensure you have Rust and Cargo installed on your system. If you don't have Rust installed, you can install it from [the official site](https://www.rust-lang.org/tools/install).

You can install `kalkulator` directly from crates.io by running:

```bash
cargo install kalkulator
```
This command installs the `kalkulator` binary, making it available for use in your terminal


### As a library

Add `kalkulator` as a dependency in your `Cargo.toml` to use it in your Rust project.

```toml
[dependencies]
kalkulator = "0.1.1"
```

## Usage

To convert an expression to postfix notation without evaluating:

```bash
kalkulator --expr "2+3/4" -p
```
To evaluate the result of an expression:

```bash
kalkulator --expr "2+3/4"
```

# Example

## Command-Line Interface
Evaluate an expression with basic arithmetic operations:

Command: 
```bash 
    kalkulator --expr "3+4^2"
```

Output:
```makefile
    Result = 11
```

Evaluate an Expression involving factorial

Command:
```bash
    kalkulator --expr "5!/(2+3)"
```

Output:
```makefile
    Result = 24
```

To show all available operations:
```bash
kalkulator --show-ops
```

## Library Usage

Here is a basic example of using `kalkulator` to evaluate an expression within a Rust project:

```rust
use kalkulator::Expression;

let mut expr = Expression::new("3+4*2");
expr.infix_to_postfix().unwrap(); // Converts to postfix notation
expr.compute_expression().unwrap(); // Evaluates the expression
assert_eq!(expr.get_result().unwrap(), 11); // The result is 11
```

Using the Expression struct to evaluate an expression with factorial and division:
```rust
use kalkulator::Expression;

let mut expr = Expression::new("4!/(2+3)");
expr.infix_to_postfix().unwrap(); // Converts to postfix notation
expr.compute_expression().unwrap(); // Evaluates the expression
assert_eq!(expr.get_result().unwrap(), 24); // The result is 24 (120 / 5)
```

For more detailed usage, check documentation: [Docs](https://docs.rs/kalkulator/latest/kalkulator/)
# Contributing

Contributions are welcome!, Whether it's adding new features, improving existing ones, or reporting bugs, your input is valuable. Check out the project's repository on GitHub