2 releases
new 0.1.1 | Dec 14, 2024 |
---|---|
0.1.0 | Dec 14, 2024 |
#991 in Rust patterns
204 downloads per month
12KB
78 lines
Rusty TypeSh - Type Pattern Matching
Welcome to Rusty TypeSh, a flexible type pattern matching system for Rust. This library provides a convenient way to perform runtime type checking and pattern matching with custom handlers.
Table of Contents
Installation
To use this library, add the following dependencies to your Cargo.toml
file:
[dependencies]
rusty-typesh = "0.1.1"
Getting Started
To get started with Rusty TypeSh, follow these steps:
Basic Type Matching
Use the type_match!
macro for simple type matching:
use rusty_typesh::type_match;
let value = 42i32;
let result = type_match!(
value,
i32 => |x: &i32| format!("Got integer: {}", x),
String => |x: &String| format!("Got string: {}", x)
);
assert_eq!(result, Some("Got integer: 42".to_string()));
Custom Type Matching
For more control, use the manual type matching approach:
use rusty_typesh::{TypeMatcher, TypePattern};
let value = 42i32;
let patterns: Vec<(Box<dyn TypePattern<i32>>, Box<dyn Fn(&i32) -> String>)> = vec![
(
Box::new(TypeMatcher::<i32>::new()),
Box::new(|x: &i32| format!("Integer: {}", x)),
),
];
let result = rusty_typesh::match_type(&value, &patterns);
assert_eq!(result, Some("Integer: 42".to_string()));
Documentation
For detailed information on all available features and their usage, please refer to the full SDK Documentation.
License
This library is licensed under the MIT License. For more details, see the LICENSE file.