pdk-classy 1.3.0-alpha.0

PDK Classy
Documentation
// Copyright 2023 Salesforce, Inc. All rights reserved.
use std::{any::type_name, marker::PhantomData};

#[derive(thiserror::Error, Clone, Copy, PartialEq, Eq)]
pub struct AlreadyExtracted<T> {
    _type: PhantomData<T>,
}

impl<T> Default for AlreadyExtracted<T> {
    fn default() -> Self {
        Self { _type: PhantomData }
    }
}

impl<T> std::fmt::Debug for AlreadyExtracted<T> {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let ty = type_name::<Self>();
        f.debug_struct(ty).finish()
    }
}

impl<T> std::fmt::Display for AlreadyExtracted<T> {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let ty = type_name::<T>();
        f.write_fmt(format_args!(r#"Type "{ty} already extracted"#))
    }
}