/// <summary>
 /// This is a strongly typed version of <see cref="Input(ComponentType)"/>,
 /// with otherwise identical semantics.
 /// </summary>
 public static DataInput <ComponentNode, TType> Input <TType>(Detail.IsComponent <TType> _ = default)
     where TType : struct, IComponentData
 {
     unsafe
     {
         return(new DataInput <ComponentNode, TType>(null, Input(ComponentType.ReadWrite <TType>())));
     }
 }
        /// <summary>
        /// This is a strongly typed version of <see cref="Output(ComponentType)"/>,
        /// with otherwise identical semantics.
        /// </summary>
        public static DataOutput <ComponentNode, TType> Output <TType>(Detail.IsComponent <TType> _ = default)
            where TType : struct, IComponentData
        {
            var output = new DataOutput <ComponentNode, TType>();

            output.Port = Output(ComponentType.ReadOnly <TType>());

            return(output);
        }