mirror of
https://github.com/bevyengine/bevy
synced 2025-01-06 18:28:59 +00:00
36 lines
719 B
Rust
36 lines
719 B
Rust
|
use std::fmt::{self, Display};
|
||
|
use syn::{Ident, Path};
|
||
|
|
||
|
#[derive(Copy, Clone)]
|
||
|
pub struct Symbol(pub &'static str);
|
||
|
|
||
|
impl PartialEq<Symbol> for Ident {
|
||
|
fn eq(&self, word: &Symbol) -> bool {
|
||
|
self == word.0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl<'a> PartialEq<Symbol> for &'a Ident {
|
||
|
fn eq(&self, word: &Symbol) -> bool {
|
||
|
*self == word.0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl PartialEq<Symbol> for Path {
|
||
|
fn eq(&self, word: &Symbol) -> bool {
|
||
|
self.is_ident(word.0)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl<'a> PartialEq<Symbol> for &'a Path {
|
||
|
fn eq(&self, word: &Symbol) -> bool {
|
||
|
self.is_ident(word.0)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl Display for Symbol {
|
||
|
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
||
|
formatter.write_str(self.0)
|
||
|
}
|
||
|
}
|