use super::validation::validate_component;
use re_entity_db::EntityDb;
pub use re_types::blueprint::components::ActiveTab;
pub use re_types::blueprint::components::ApplyLatestAt;
pub use re_types::blueprint::components::BackgroundKind;
pub use re_types::blueprint::components::ColumnShare;
pub use re_types::blueprint::components::ComponentColumnSelector;
pub use re_types::blueprint::components::Corner2D;
pub use re_types::blueprint::components::FilterByRange;
pub use re_types::blueprint::components::FilterIsNotNull;
pub use re_types::blueprint::components::IncludedContent;
pub use re_types::blueprint::components::Interactive;
pub use re_types::blueprint::components::LockRangeDuringZoom;
pub use re_types::blueprint::components::MapProvider;
pub use re_types::blueprint::components::PanelState;
pub use re_types::blueprint::components::QueryExpression;
pub use re_types::blueprint::components::RowShare;
pub use re_types::blueprint::components::SelectedColumns;
pub use re_types::blueprint::components::SpaceViewClass;
pub use re_types::blueprint::components::SpaceViewOrigin;
pub use re_types::blueprint::components::TensorDimensionIndexSlider;
pub use re_types::blueprint::components::TimelineName;
pub use re_types::blueprint::components::ViewFit;
pub use re_types::blueprint::components::ViewerRecommendationHash;
pub use re_types::blueprint::components::Visible;
pub use re_types::blueprint::components::VisibleTimeRange;
pub use re_types::blueprint::components::VisualBounds2D;
pub use re_types::blueprint::components::ZoomLevel;
pub use re_types_blueprint::blueprint::components::AutoLayout;
pub use re_types_blueprint::blueprint::components::AutoSpaceViews;
pub use re_types_blueprint::blueprint::components::ContainerKind;
pub use re_types_blueprint::blueprint::components::GridColumns;
pub use re_types_blueprint::blueprint::components::IncludedSpaceView;
pub use re_types_blueprint::blueprint::components::RootContainer;
pub use re_types_blueprint::blueprint::components::SpaceViewMaximized;
pub use re_types_blueprint::blueprint::components::VisualizerOverrides;
pub fn is_valid_blueprint(blueprint: &EntityDb) -> bool {
validate_component::<ActiveTab>(blueprint)
&& validate_component::<ApplyLatestAt>(blueprint)
&& validate_component::<AutoLayout>(blueprint)
&& validate_component::<AutoSpaceViews>(blueprint)
&& validate_component::<BackgroundKind>(blueprint)
&& validate_component::<ColumnShare>(blueprint)
&& validate_component::<ComponentColumnSelector>(blueprint)
&& validate_component::<ContainerKind>(blueprint)
&& validate_component::<Corner2D>(blueprint)
&& validate_component::<FilterByRange>(blueprint)
&& validate_component::<FilterIsNotNull>(blueprint)
&& validate_component::<GridColumns>(blueprint)
&& validate_component::<IncludedContent>(blueprint)
&& validate_component::<IncludedSpaceView>(blueprint)
&& validate_component::<Interactive>(blueprint)
&& validate_component::<LockRangeDuringZoom>(blueprint)
&& validate_component::<MapProvider>(blueprint)
&& validate_component::<PanelState>(blueprint)
&& validate_component::<QueryExpression>(blueprint)
&& validate_component::<RootContainer>(blueprint)
&& validate_component::<RowShare>(blueprint)
&& validate_component::<SelectedColumns>(blueprint)
&& validate_component::<SpaceViewClass>(blueprint)
&& validate_component::<SpaceViewMaximized>(blueprint)
&& validate_component::<SpaceViewOrigin>(blueprint)
&& validate_component::<TensorDimensionIndexSlider>(blueprint)
&& validate_component::<TimelineName>(blueprint)
&& validate_component::<ViewFit>(blueprint)
&& validate_component::<ViewerRecommendationHash>(blueprint)
&& validate_component::<Visible>(blueprint)
&& validate_component::<VisibleTimeRange>(blueprint)
&& validate_component::<VisualBounds2D>(blueprint)
&& validate_component::<VisualizerOverrides>(blueprint)
&& validate_component::<ZoomLevel>(blueprint)
}