
com.avsystem.commons.serialization.SerializationName.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of commons-core_2.12 Show documentation
Show all versions of commons-core_2.12 Show documentation
AVSystem commons library for Scala
The newest version!
package com.avsystem.commons
package serialization
import com.avsystem.commons.misc.{AnnotationOf, SimpleClassName}
case class SerializationName[T](name: String) extends AnyVal
object SerializationName extends SerializationNameLowPrio {
def of[T](implicit sn: SerializationName[T]): String = sn.name
implicit def fromNameAnnot[T](implicit nameAnnot: AnnotationOf[name, T]): SerializationName[T] =
SerializationName(nameAnnot.annot.name)
}
trait SerializationNameLowPrio { this: SerializationName.type =>
implicit def fromSimpleClassName[T: SimpleClassName]: SerializationName[T] =
SerializationName(SimpleClassName.of[T])
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy