use crate::{AttributeType, BinaryAttribute, NumberAttribute, StringAttribute};
use super::*;
mod sealed_traits {
pub trait IntoTypedAttributeValueSeal<KA: super::AttributeType> {}
}
pub trait IntoTypedAttributeValue<KA: AttributeType>:
IntoAttributeValue + sealed_traits::IntoTypedAttributeValueSeal<KA>
{
}
pub(super) trait IntoStringAttributeValue {}
impl<T: IntoStringAttributeValue + IntoAttributeValue>
sealed_traits::IntoTypedAttributeValueSeal<StringAttribute> for T
{
}
impl<T: IntoStringAttributeValue + IntoAttributeValue> IntoTypedAttributeValue<StringAttribute>
for T
{
}
pub(super) trait IntoNumberAttributeValue {}
impl<T: IntoNumberAttributeValue + IntoAttributeValue>
sealed_traits::IntoTypedAttributeValueSeal<NumberAttribute> for T
{
}
impl<T: IntoNumberAttributeValue + IntoAttributeValue> IntoTypedAttributeValue<NumberAttribute>
for T
{
}
pub(super) trait IntoBinaryAttributeValue {}
impl<T: IntoBinaryAttributeValue + IntoAttributeValue>
sealed_traits::IntoTypedAttributeValueSeal<BinaryAttribute> for T
{
}
impl<T: IntoBinaryAttributeValue + IntoAttributeValue> IntoTypedAttributeValue<BinaryAttribute>
for T
{
}