Documentation
use super::{Artifact, ArtifactFile, ArtifactHir, ArtifactHttpHir, ArtifactKind};

impl serde::Serialize for Artifact {
    fn serialize<__S>(&self, __serializer: __S) -> serde::__private228::Result<__S::Ok, __S::Error>
    where
        __S: serde::Serializer,
    {
        match self.tag {
            ArtifactKind::Hir => {
                let mut s = serde::Serializer::serialize_struct_variant(
                    __serializer,
                    "Artifact",
                    0,
                    "ArtifactKind::Hir",
                    size_of::<ArtifactHir>(),
                )?;
                let x = unsafe { std::ops::Deref::deref(&self.data.hir) };
                serde::ser::SerializeStructVariant::serialize_field(
                    &mut s,
                    "ArtifactKind::Hir",
                    x,
                )?;
                serde::ser::SerializeStructVariant::end(s)
            }
            ArtifactKind::HttpHir => {
                let mut s = serde::Serializer::serialize_struct_variant(
                    __serializer,
                    "Artifact",
                    1,
                    "ArtifactKind::HttpHir",
                    size_of::<ArtifactHttpHir>(),
                )?;
                let x = unsafe { std::ops::Deref::deref(&self.data.http_hir) };
                serde::ser::SerializeStructVariant::serialize_field(
                    &mut s,
                    "ArtifactKind::HttpHir",
                    x,
                )?;
                serde::ser::SerializeStructVariant::end(s)
            }
            ArtifactKind::File => {
                let mut s = serde::Serializer::serialize_struct_variant(
                    __serializer,
                    "Artifact",
                    2,
                    "ArtifactKind::File",
                    size_of::<ArtifactFile>(),
                )?;
                let x = unsafe { std::ops::Deref::deref(&self.data.file) };
                serde::ser::SerializeStructVariant::serialize_field(
                    &mut s,
                    "ArtifactKind::File",
                    x,
                )?;
                serde::ser::SerializeStructVariant::end(s)
            }
        }
    }
}