use super::{CommentOperation, OperationKind};
use crate::catalog::extension::Extension;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ExtensionIdentifier {
pub name: String,
}
impl ExtensionIdentifier {
pub fn new(name: String) -> Self {
Self { name }
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ExtensionOperation {
Create { extension: Extension },
Drop { identifier: ExtensionIdentifier },
Comment(CommentOperation),
}
impl ExtensionOperation {
pub fn operation_kind(&self) -> OperationKind {
match self {
Self::Create { .. } => OperationKind::Create,
Self::Drop { .. } => OperationKind::Drop,
Self::Comment(_) => OperationKind::Alter,
}
}
}