---
UseColor: true
WarningsAsErrors: true,*
HeaderFilterRegex: include/poac/
Checks: -*
  boost-*
  bugprone-*
    -bugprone-unchecked-optional-access
    -bugprone-easily-swappable-parameters
    -bugprone-narrowing-conversions
    -bugprone-branch-clone
  cert-*
    -cert-err58-cpp
  clang-analyzer-*
  google-*
    -google-build-using-namespace
  misc-*
    -misc-no-recursion
  modernize-*
  performance-*
  portability-*
  readability-*
    -readability-else-after-return
    -readability-identifier-length
    -readability-implicit-bool-conversion
    -readability-magic-numbers
CheckOptions:
  - key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
    value: true

  # ref: https://rust-lang.github.io/api-guidelines/naming.html
  # ref: https://clang.llvm.org/extra/clang-tidy/checks/readability/identifier-naming.html
  - key: readability-identifier-naming.AbstractClassCase
    value: CamelCase
  - key: readability-identifier-naming.ClassCase
    value: CamelCase
  - key: readability-identifier-naming.StructCase
    value: CamelCase
  - key: readability-identifier-naming.UnionCase
    value: CamelCase
  - key: readability-identifier-naming.EnumCase
    value: CamelCase
  - key: readability-identifier-naming.TypeAliasCase
    value: CamelCase

  - key: readability-identifier-naming.FunctionCase
    value: lower_case
  - key: readability-identifier-naming.MethodCase
    value: lower_case
  - key: readability-identifier-naming.MacroDefinitionCase
    value: UPPER_CASE
  - key: readability-identifier-naming.LocalVariableCase
    value: lower_case

  - key: readability-identifier-naming.StaticVariableCase
    value: UPPER_CASE
  - key: readability-identifier-naming.ConstexprVariableCase
    value: UPPER_CASE
