pub fn serialize<P, T, S>(field: &P, ser: S) -> Result<S::Ok, S::Error>where
    P: SmartPtr<Target = T>,
    T: ?Sized + Serialize,
    S: Serializer,