/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
///
/// SPDX-License-Identifier: MIT
///

namespace armnn
{
/**
@page swtools Software Tools

On this page you can find all software tools contained in the Arm NN repository. You will find links to how-to guides and
other helpful information in each section.

@subpage delegate

@subpage parsers

@subpage md_python_pyarmnn_README

@subpage serializer

@subpage deserializer

@subpage md_src_armnnQuantizer_README

@subpage md_src_armnnConverter_README

@subpage md_tests_ImageCSVFileGenerator_README

@subpage md_tests_ImageTensorGenerator_README

@subpage md_tests_ModelAccuracyTool-Armnn_README
**/
}


/// Create pages for each tool so they appear nicely in the doxygen tree-view. Subpages are not listed there.
///
/// Note: The parser, serializer and deserializer pages are created in 01_parsers.dox or 02_deserializer_serializer.dox
namespace armnn
{
/**

@page md_python_pyarmnn_README PyArmNN

@page md_src_armnnQuantizer_README Quantizer

@page md_src_armnnConverter_README Converter

@page md_tests_ModelAccuracyTool-Armnn_README ModelAccuracyTool

@page md_tests_ImageCSVFileGenerator_README ImageCSVFileGenerator

@page md_tests_ImageTensorGenerator_README ImageTensorGenerator

**/
}

