filecaster 0.1.0

Procedural macro to derive configuration from files, with optional merging capabilities.
Documentation
# derive(FromFile)

Procedural macro to derive configuration from files, with optional merging capabilities.

## Features

- **Derive Configuration:** Easily load configuration from files into your Rust structs.
- **Default Values:** Specify default values for struct fields using the `#[default = "..."]` attribute.
- **Optional Merging:** When the `merge` feature is enabled, allows merging multiple configuration sources.

## Usage

```toml
[dependencies]
filecaster = "0.1"
```

```rust
use filecaster::FromFile;

#[derive(Debug, Clone, FromFile)]
pub struct MyConfig {
    #[from_file(default = "localhost")]
    pub host: String,
    #[from_file(default = 8080)]
    pub port: u16,
    #[from_file(default = false)]
    pub enabled: bool,
}

fn main() {
    // Simulate loading from a file (e.g., JSON, YAML, TOML)
    let file_content = r#"
        {
            "host": "localhost"
        }
    "#;

    let config_from_file: MyConfig = serde_json::from_str(file_content).unwrap();
    let config = MyConfig::from_file(Some(config_from_file));

    println!("Config: {:?}", config);
    // Expected output: Config { host: "localhost", port: 8080, enabled: false }
}
```

## Documentation

Full documentation is available at [docs.rs](https://docs.rs/filecaster).

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is dual-licensed under either:

- MIT License ([LICENSE-MIT]LICENSE-MIT or [http://opensource.org/licenses/MIT]http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 ([LICENSE-APACHE]LICENSE-APACHE or [http://www.apache.org/licenses/LICENSE-2.0]http://www.apache.org/licenses/LICENSE-2.0)

at your option.