lino-env 0.1.0

A Rust library to read and write .lenv files
Documentation
# lino-env (Rust)

A Rust library to read and write `.lenv` files.

## What is .lenv?

`.lenv` files are environment configuration files that use `: ` (colon-space) instead of `=` for key-value separation. This format is part of the links-notation specification.

Example `.lenv` file:

```
GITHUB_TOKEN: gh_abc123
TELEGRAM_TOKEN: 054xyz789
API_URL: https://api.example.com:8080
```

## Installation

Add this to your `Cargo.toml`:

```toml
[dependencies]
lino-env = "0.1"
```

## Usage

### Basic Usage

```rust
use lino_env::LinoEnv;

// Create and write a new .lenv file
let mut env = LinoEnv::new(".lenv");
env.set("GITHUB_TOKEN", "gh_abc123");
env.set("API_KEY", "my_api_key");
env.write().unwrap();

// Read an existing .lenv file
let mut env = LinoEnv::new(".lenv");
env.read().unwrap();

// Get a value
if let Some(token) = env.get("GITHUB_TOKEN") {
    println!("Token: {}", token);
}
```

### Multiple Values per Key

`.lenv` files support multiple values for the same key:

```rust
use lino_env::LinoEnv;

let mut env = LinoEnv::new(".lenv");

// Add multiple values for the same key
env.add("ALLOWED_HOST", "localhost");
env.add("ALLOWED_HOST", "example.com");
env.add("ALLOWED_HOST", "api.example.com");

// Get the last value
assert_eq!(env.get("ALLOWED_HOST"), Some("api.example.com".to_string()));

// Get all values
let hosts = env.get_all("ALLOWED_HOST");
assert_eq!(hosts, vec!["localhost", "example.com", "api.example.com"]);
```

### Convenience Functions

```rust
use lino_env::{read_lino_env, write_lino_env};
use std::collections::HashMap;

// Write using a HashMap
let mut data = HashMap::new();
data.insert("KEY1".to_string(), "value1".to_string());
data.insert("KEY2".to_string(), "value2".to_string());
write_lino_env(".lenv", &data).unwrap();

// Read into a LinoEnv instance
let env = read_lino_env(".lenv").unwrap();
println!("{:?}", env.get("KEY1"));
```

## API Reference

### LinoEnv

- `new(file_path)` - Create a new LinoEnv instance
- `read()` - Read and parse the .lenv file
- `write()` - Write the current data to the file
- `get(key)` - Get the last value for a key
- `get_all(key)` - Get all values for a key
- `set(key, value)` - Set a key to a single value (replaces all)
- `add(key, value)` - Add a value to a key (allows duplicates)
- `has(key)` - Check if a key exists
- `delete(key)` - Delete all values for a key
- `keys()` - Get all keys
- `to_hash_map()` - Convert to HashMap with last values

## License

Unlicense