| 3 */ |
3 */ |
| 4 |
4 |
| 5 use crate::euclidean::*; |
5 use crate::euclidean::*; |
| 6 use crate::mapping::{Instance, Mapping, Space}; |
6 use crate::mapping::{Instance, Mapping, Space}; |
| 7 use crate::types::*; |
7 use crate::types::*; |
| 8 use serde::Serialize; |
8 use serde::{Deserialize, Serialize}; |
| 9 use std::marker::PhantomData; |
9 use std::marker::PhantomData; |
| 10 |
10 |
| 11 // |
11 // |
| 12 // Abstract norms |
12 // Abstract norms |
| 13 // |
13 // |
| 14 |
14 |
| 15 #[derive(Copy, Clone, Debug)] |
15 #[derive(Copy, Clone, Debug, Serialize, Deserialize)] |
| 16 /// Helper structure to convert a [`NormExponent`] into a [`Mapping`] |
16 /// Helper structure to convert a [`NormExponent`] into a [`Mapping`] |
| 17 pub struct NormMapping<F: Float, E: NormExponent> { |
17 pub struct NormMapping<F: Float, E: NormExponent> { |
| 18 pub(crate) exponent: E, |
18 pub(crate) exponent: E, |
| 19 _phantoms: PhantomData<F>, |
19 _phantoms: PhantomData<F>, |
| 20 } |
20 } |