Lines
35.71 %
Functions
8.33 %
use std::fmt::Display;
use serde::{Deserialize, Serialize};
/// A reference to an object stored in the [`SymbolTable`].
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Name {
/// A name given in the input model.
UserName(String),
/// A name generated by Conjure-Oxide.
MachineName(i32),
}
uniplate::derive_unplateable!(Name);
impl Display for Name {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Name::UserName(s) => write!(f, "{}", s),
Name::MachineName(i) => write!(f, "__{}", i),
impl From<String> for Name {
fn from(s: String) -> Self {
Name::UserName(s)
impl From<&str> for Name {
fn from(s: &str) -> Self {
Name::UserName(s.to_string())
impl From<i32> for Name {
fn from(i: i32) -> Self {
Name::MachineName(i)