- Ein einfacher String soll in einen Operationstyp umgewandelt werden
- Die Berechnung der Operation soll bei der Darstellung der Operationsdatenstruktur durchgeführt werden
- Traits für Rechenoperationen sind in
std::ops
definiert
use std::convert::From;
use std::fmt;
#[derive(Debug)]
enum OperationType {
Add,
Sub,
Mul,
Div,
}
#[derive(Debug)]
struct Operation<T> {
a: T,
b: T,
op: OperationType,
}
impl<T> fmt::Display for Operation<T>
where
T: std::marker::Copy,
T: std::fmt::Display,
// TODO: weitere Trait-Anforderungen definieren
{
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
write!(formatter, "{}", "Not implemented")
}
}
impl From<&str> for OperationType {
fn from(input: &str) -> Self {
match input {
// TODO: Mapping implementieren
_ => OperationType::Add,
}
}
}
fn main() -> Result<(), String> {
let op = Operation { a: 1, op: "+".into(), b: 2};
println!("Result: {}", op);
Ok(())
}