Crates.io | convert_by_name |
lib.rs | convert_by_name |
version | 0.0.4 |
source | src |
created_at | 2021-12-19 16:07:45.316654 |
updated_at | 2023-07-25 17:41:46.592845 |
description | Derive From and Into for structs and enums based on field and variant names |
homepage | https://github.com/andy128k/convert_by_name/ |
repository | https://github.com/andy128k/convert_by_name/ |
max_upload_size | |
id | 500425 |
size | 16,508 |
Procedural macros to derive core::convert::From
and core::convert::Into
implementations based on field/variant names.
The crate supports struct
s and enum
s only. union
s are not supported.
#[derive(PartialEq, Debug)]
struct Point2D {
x: i32,
y: i32,
}
#[derive(PartialEq, Debug, ConvertByName)]
#[from(Point2D)]
#[into(Point2D)]
struct Vec2D {
x: i32,
y: i32,
}
let point = Point2D { x: 3, y: 4 };
let vector: Vec2D = point.into();
assert_eq!(vector, Vec2D { x: 3, y: 4 });
let point2: Point2D = vector.into();
assert_eq!(point2, Point2D { x: 3, y: 4 });