use super :: *;
pub mod private
{
use super :: *;
impl< T, const N: usize > Instance for [ T ; N ]
where
EntityDescriptor< [ T ; N ] > : Entity,
{
type Entity = EntityDescriptor :: < Self >;
#[ inline( always ) ]
fn Reflect() -> Self ::Entity
{
EntityDescriptor :: < Self > ::new()
}
}
impl< T, const N: usize > Entity for EntityDescriptor< [ T ; N ] >
where
T: 'static + Instance,
{
#[ inline( always ) ]
fn is_container( &self ) -> bool
{
true
}
#[ inline( always ) ]
fn len( &self ) -> usize
{
N
}
#[ inline( always ) ]
fn type_name( &self ) -> &'static str
{
core ::any ::type_name :: < [ T ; N ] >()
}
#[ inline( always ) ]
fn type_id( &self ) -> core ::any ::TypeId
{
core ::any ::TypeId ::of :: < [ T ; N ] >()
}
#[ inline( always ) ]
fn elements( &self ) -> Box< dyn Iterator< Item = KeyVal > >
{
let result: Vec< KeyVal > = ( 0 .. N )
.map( | k | KeyVal { key: Primitive ::usize( k ), val: Box ::new( < T as Instance > ::Reflect() ) } )
.collect();
Box ::new( result.into_iter() )
}
}
}
#[ doc( inline ) ]
#[ allow( unused_imports ) ]
pub use own :: *;
#[ allow( unused_imports ) ]
pub mod own
{
use super :: *;
#[ doc( inline ) ]
pub use orphan :: *;
}
#[ allow( unused_imports ) ]
pub mod orphan
{
use super :: *;
#[ doc( inline ) ]
pub use exposed :: *;
}
#[ allow( unused_imports ) ]
pub mod exposed
{
use super :: *;
#[ doc( inline ) ]
pub use prelude :: *;
}
#[ doc( inline ) ]
#[ allow( unused_imports ) ]
pub use exposed :: *;
#[ allow( unused_imports ) ]
pub mod prelude
{
use super :: *;
}