---
clippy:
    description: Lint rust
    include:
        - build/workspace-hack/
        - dom/midi/midir_impl/
        - dom/media/gtest/
        - dom/webauthn/libudev-sys/
        - gfx/webrender_bindings/
        - gfx/wr/peek-poke/
        - gfx/wr/peek-poke/peek-poke-derive/
        - gfx/wr/webrender_build/
        - gfx/wr/wr_malloc_size_of/
        - js/src/frontend/smoosh/
        - js/src/rust/shared/
        - modules/libpref/init/static_prefs/
        - mozglue/static/rust/
        - netwerk/base/mozurl/
        - security/manager/ssl/data_storage/
        - servo/components/derive_common/
        - servo/components/selectors/
        - servo/components/servo_arc/
        - servo/components/style/
        - servo/components/style_derive/
        - servo/components/style_traits/
        - servo/components/to_shmem/
        - servo/components/to_shmem_derive/
        - servo/tests/unit/style/
        - testing/geckodriver/
        - testing/mozbase/rust/mozdevice/
        - testing/mozbase/rust/mozprofile/
        - testing/mozbase/rust/mozrunner/
        - testing/mozbase/rust/mozversion/
        - testing/webdriver/
        - third_party/rust/mp4parse/
        - third_party/rust/mp4parse_capi/
        - toolkit/crashreporter/mozannotation_client/
        - toolkit/crashreporter/mozannotation_server/
        - toolkit/components/kvstore/
        - toolkit/components/glean/
        - toolkit/library/rust/
        - tools/fuzzing/rust/
        - tools/profiler/rust-api/
        - xpcom/rust/gtest/bench-collections/
        - xpcom/rust/xpcom/xpcom_macros/
    exclude:
        # Many are failing for the same reasons:
        # https://bugzilla.mozilla.org/show_bug.cgi?id=1606073
        # https://bugzilla.mozilla.org/show_bug.cgi?id=1606077
        - Cargo.toml
        # nsstring
        # derive_hash_xor_eq
        - gfx/wr/
        - gfx/wr/webrender/
        - gfx/wr/examples/
        # windows-only
        - gfx/wr/example-compositor/compositor-windows/
        - gfx/wr/webrender_api/
        - gfx/wr/wrench/
        - gfx/wgpu_bindings/
        # not_unsafe_ptr_arg_deref
        - modules/libpref/parser/
        - tools/profiler/rust-helper/
        - toolkit/library/rust/shared/
        - toolkit/library/gtest/rust/
        # not_unsafe_ptr_arg_deref
        - remote/
        - dom/media/webrtc/sdp/rsdparsa_capi/
        - intl/encoding_glue/
        # not_unsafe_ptr_arg_deref
        - storage/rust/
        - storage/variant/
        # nsstring
        - servo/ports/geckolib/tests/
        - xpcom/rust/xpcom/
        - xpcom/rust/nsstring/
        - xpcom/rust/gtest/xpcom/
        - xpcom/rust/gtest/nsstring/
        - security/manager/ssl/cert_storage/
        - intl/locale/rust/fluent-langneg-ffi/
        - intl/locale/rust/unic-langid-ffi/
        - toolkit/components/places/bookmark_sync/
        - xpcom/rust/nserror/
        - xpcom/rust/moz_task/
        - xpcom/rust/gkrust_utils/
        - netwerk/socket/neqo_glue/
        - dom/media/webrtc/transport/mdns_service/
        - tools/lint/test/files/clippy/
        - servo/ports/geckolib/
        - servo/ports/geckolib/tests/
        - servo/tests/unit/malloc_size_of/
        - servo/components/malloc_size_of/
        - dom/media/webrtc/sdp/rsdparsa_capi/
        - testing/geckodriver/marionette/
        - toolkit/components/bitsdownload/bits_client/
        - gfx/wr/example-compositor/compositor/
        - toolkit/components/bitsdownload/bits_client/bits/
        # mac and windows only
        - security/manager/ssl/osclientcerts/
    extensions:
        - rs
    support-files:
        - 'tools/lint/clippy/**'
    # the version of cargo-clippy is:
    # clippy 0.1.65 (2019147 2022-09-19)
    # we use the date instead to facilitate the check
    # replacing - by . because Python packaging.version.Version expects this
    min_clippy_version: 2022.09.19
    type: external
    payload: clippy:lint
