mod circle;
mod field_loop_2d;
mod line;
mod line_field;
mod polygon;
mod rectangle;
mod circle_field;
mod rectangle_field;
pub use circle::*;
pub use field_loop_2d::*;
pub use line::*;
pub use line_field::*;
pub use polygon::*;
pub use rectangle::*;
use crate::magnets::MagnetTrait;
use crate::parse::{magnet2d_to_toml, MagnetKind};
use crate::MagnetError;
use serde_derive::{Deserialize, Serialize};
pub trait MagnetTrait2D<POINT, CENTER, SIZE, MAG>: MagnetTrait<POINT, CENTER, SIZE, MAG> {}
#[derive(Debug, Deserialize, Serialize, PartialEq)]
pub enum Magnet2D {
Rectangle(Rectangle),
Circle(Circle),
Polygon(Polygon),
}
impl Magnet2D {
pub fn to_toml_struct(&self) -> Result<MagnetKind, MagnetError> {
magnet2d_to_toml(self)
}
}