use pyo3::{FromPyObject};
use quote::{quote, format_ident};
use proc_macro2::TokenStream;
use crate::codegen::{CodeGen, PythonOptions, CodeGenContext};
use crate::symbols::SymbolTableScopes;
use serde::{Serialize, Deserialize};
#[derive(Clone, Debug, Default, FromPyObject, PartialEq, Serialize, Deserialize)]
pub struct Name {
pub id: String,
}
impl<'a> CodeGen for Name {
type Context = CodeGenContext;
type Options = PythonOptions;
type SymbolTable = SymbolTableScopes;
fn to_rust(self, _ctx: Self::Context, _options: Self::Options, _symbols: Self::SymbolTable) -> Result<TokenStream, Box<dyn std::error::Error>> {
let name = format_ident!("{}", self.id);
Ok(quote!(#name))
}
}