Merge "Update bitflags to 2.8.0" into main
diff --git a/crates/bitflags/.android-checksum.json b/crates/bitflags/.android-checksum.json
index cc854d0..b67964f 100644
--- a/crates/bitflags/.android-checksum.json
+++ b/crates/bitflags/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"e60168093f0c9ab79c6efa3cd59e878174ef5aeb60a6ca05da54f6ee948e3726","Android.bp":"ca283fc01925086059b5f8d9084b82f3c58a05327b0531939319a035f3373a1a","CHANGELOG.md":"476f3722c29c420f74df236af508fd3c4f8cb30a9573178bf6cafaeee6489ad4","CODE_OF_CONDUCT.md":"4063df77c169eee901088338d4c4fdb1523469263a6e4ab46e2936d9ed1d8287","CONTRIBUTING.md":"eefc979a5fed613f39b33128b1a3acdb31bc12fbd2aa70bc0bd37afe9d0c4263","Cargo.lock":"781445bdb51c2e6d4d85bf0b247485f0d0af3db05d174356b58fedc1f62737f0","Cargo.toml":"34505970ce9f63ccdd77bd4dcd15af21af4d2f68c8adfc8d30ca77f23961b475","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"16693a68efd65bc6a9df3448c8f7ee6745418c73faff4ec4d443648c04285fa4","METADATA":"d7fb7534ddf862ebb5e4dce15ba28ae1c1f7ed74e013b21ddc55db9d3df07997","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"aaf3505f94957b40aececef1cd66dc1f0b1bf807b4d70a9d7206a883f919b297","SECURITY.md":"b4054da2c6cf71c5c262d4e1ea23fe4a34fbaff429c837ef9cc1987050b0799a","TEST_MAPPING":"bcbfeb9a73a2e8a24ce7bc6e2529132de16e557957825acbac0dc616b1bb71c4","benches/parse.rs":"a2803b852ff337f7fd999602ba2a2963d57bfc7a63e619d4770e39a3bbe452e9","cargo_embargo.json":"d2d75aec1339e081ddf5bd585b4bf41d71c15afb1ec279e36b9de768475674c7","examples/custom_bits_type.rs":"65b3b831bbaf36201abf9ff48aa0424631a97c49a10c51d254a3f49f3f74753a","examples/custom_derive.rs":"5221abaeb50bfe867bf0e47c18f16f8613d86c63ceb8e70c3b03ee8a8d75dc72","examples/fmt.rs":"b49642ac253df177baa32a806df6f6a60c598bb08c5ca3a1589daa900fa6935b","examples/macro_free.rs":"276c152ee5cdad71a3988705abda355e54a6d467b465683fa7ee77e84fbb0623","examples/serde.rs":"e35659978f11469a7519402971ee0a37fec052e5b4f8f2f58b44ddf5bc4dab55","patches/rules.mk.diff":"38a0d80f966cc4413dff0c924a3cb5311804d835111e0dafa1054431b0277c14","rules.mk":"a9f1aaf7b85c9270b663e1eba553b4d4c498d3bf163265767869219b9a7f15b5","spec.md":"d6ac0c32ef98f96df3634e38d0bad97420126af3fd2e9eec008044a3d63d24c8","src/example_generated.rs":"e0b32b40b22248a2731106bd851a9eb2410b4774a72fc89838b4fbb7c6e393a3","src/external.rs":"300a572fadfe6d1fb05c81183c90de01b8ab923e7df82585ff7da0af0dfabc89","src/external/arbitrary.rs":"cecc68181620c35419342453ac4c38df7272765d7ff168391a7564c6577b52d5","src/external/bytemuck.rs":"290281ecc027b069b72a6e965e23af1b362f70d84a1b6466baae781c42080264","src/external/serde.rs":"25a6360def73c6eaa619520062e76b1073c01bcbc30fb5b3f15da59dff827638","src/internal.rs":"fbd8c745b8ea36f41aa6ceb05624bd4f2f039a627f00044567ef1d1a230f698f","src/iter.rs":"417e4ef92bc69ebb9abc6e205a7fc5d6f66eeba218cb9354990d91e28651c946","src/lib.rs":"ae8ccdc743d5d99c6e3bd09971519e5b7d9096337dd64adc5163d7c6eafd155a","src/parser.rs":"95e6a65479842e3880507d09c0e9c975233733ca007eaf85c384f86c825be89f","src/public.rs":"e9d62d31ddbb6c4f70b701d22e616102edf8aea2dc08c8292e365f6292641c07","src/tests.rs":"6c4f4ed0937d59b088fc3a947ea20f6ad562a0967c8312bbd3c07d2c02021eba","src/tests/all.rs":"d0c32ed470d43e53c471af1684d871b3fe282508e1a93d0a6b18ea0fafc5e474","src/tests/bits.rs":"d083ef28822e1c08c520f37905646c599e607089367c5498aa8777422ed717bc","src/tests/complement.rs":"2eff61b3a7aeeec4c47492468f5d5536d837995fcab87031bb1166296ff1c731","src/tests/contains.rs":"44742bd6e1ee60291da959fef103c137f1aa60cd48720d022dcd574a6747de4a","src/tests/difference.rs":"ade15dac713c90cb075ee0770ce5623233ae1ab676373df550df56ab1d2f31a1","src/tests/empty.rs":"18b93fab7194f5d82addeab1a0ad5efaed806727c479a6c233e602fd1eb3c3dd","src/tests/eq.rs":"471005a8132b16a8900e852cf7d9e864c8bbd7bea01954eb0b91c86f43a89950","src/tests/extend.rs":"366e1d59139af88c4cecb49a76ce21b1e82806dce3abaf5d16dcf65dddd2858c","src/tests/flags.rs":"7c4589c2b41a51ab813e9f40fe1b244fa6943f38d5209f68ff4e1d5106f251f6","src/tests/fmt.rs":"c758caa3f4064756d2478d99a2a758939cc44daa7505d33cae095e10532ee6db","src/tests/from_bits.rs":"47dd1bcf78b24f152fc95109fc0c6dc025c9f667aa5e8bc6d8836fc2cd76dc40","src/tests/from_bits_retain.rs":"4dbcc86e042ab0b2560ced3d0d69e1af803437c398dce7f1be906d92dc06c984","src/tests/from_bits_truncate.rs":"d17efb1bad75c5ff259dd97dedd958c87138bf35352964d041b68bcb11f2d45c","src/tests/from_name.rs":"efc39d196633793996b5fb049d700a50972c89326a55e224049b35c222e5e8a7","src/tests/insert.rs":"206adeff2bbbcf19f3b89404cd7aa00de948299dee68bf232d7e13bc4119f0b5","src/tests/intersection.rs":"cccf16199b719504b3893124501da2037cb754eb1c1e11334e953b96c5778b11","src/tests/intersects.rs":"dc96e54f9b3a3d65ab76015e90c4e7a91d9157512ba0315f8ece08bde148accc","src/tests/is_all.rs":"108180331563f5304d21314a7557bf6e9dd88ade94050408b58856e92b8786a5","src/tests/is_empty.rs":"f4717842e4c55b478bd6e3619c007295536ac19510f4b7df8a5569445c1a7e9e","src/tests/iter.rs":"b7143f58a9a3cecbbb3d84dc4292eb27a26fbddf23b9661270481ea7f377ced3","src/tests/parser.rs":"12513ba119618464e61cb624d9f47c5644b3fe5c90f75b451ea5c1287f3876b5","src/tests/remove.rs":"ace949c743f9c0add2964b3f0f59f5a39d1f20228ec3f5084ee93f331f975007","src/tests/symmetric_difference.rs":"d900443b34855527c5e3dae34a15014db12139edd0393b6dafd05120ff44096a","src/tests/truncate.rs":"357988c61038edfbb8851dd50ac5f8f7dab5a99d5917c39651d44f83c5d7bb19","src/tests/union.rs":"3aa62dbcec0fe9c3302c8425b904b12b6fc303e5adfaed8d087dfdd24142c776","src/tests/unknown.rs":"52f8a803221065b871b12abfdff590eeeeef71ff3e9422ff1865a64ecf2c686e","src/traits.rs":"0d011a3aac117425f5b1ad657c6ac09275b191f10ec895bb4597e56f23e04378"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"4bb20bc4fdffa3b1c79a8bbbf17d5d544c3b0adc7bbb621799bb294ceeeaf7e4","Android.bp":"6779dcf3b8fdde835100d07aae70f38d97bdfac4d5681ebbcef90a29ecf7eb65","CHANGELOG.md":"94b41964be67050ea6a4399ab5784679ab8f1e79ee3069064cc41af29a58ebfa","CODE_OF_CONDUCT.md":"4063df77c169eee901088338d4c4fdb1523469263a6e4ab46e2936d9ed1d8287","CONTRIBUTING.md":"eefc979a5fed613f39b33128b1a3acdb31bc12fbd2aa70bc0bd37afe9d0c4263","Cargo.lock":"c969bcf0ce3596097f391c45bca141acb7c62e41dc9389819c239a29ccb2466f","Cargo.toml":"e75275b36916e9290cec1e91c0109bbe8b6580b0a0e013c534a0bdd204b963c7","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"16693a68efd65bc6a9df3448c8f7ee6745418c73faff4ec4d443648c04285fa4","METADATA":"629b465e3a400e7b431bd3cca877b8f7225194c683a9a66f69de9653ce88234f","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"6c36737b24ae565744d485a4d24bef74c54a56cee1fc8350d6610215fe802199","SECURITY.md":"b4054da2c6cf71c5c262d4e1ea23fe4a34fbaff429c837ef9cc1987050b0799a","TEST_MAPPING":"bcbfeb9a73a2e8a24ce7bc6e2529132de16e557957825acbac0dc616b1bb71c4","benches/parse.rs":"a2803b852ff337f7fd999602ba2a2963d57bfc7a63e619d4770e39a3bbe452e9","cargo_embargo.json":"d2d75aec1339e081ddf5bd585b4bf41d71c15afb1ec279e36b9de768475674c7","examples/custom_bits_type.rs":"65b3b831bbaf36201abf9ff48aa0424631a97c49a10c51d254a3f49f3f74753a","examples/custom_derive.rs":"5221abaeb50bfe867bf0e47c18f16f8613d86c63ceb8e70c3b03ee8a8d75dc72","examples/fmt.rs":"b49642ac253df177baa32a806df6f6a60c598bb08c5ca3a1589daa900fa6935b","examples/macro_free.rs":"276c152ee5cdad71a3988705abda355e54a6d467b465683fa7ee77e84fbb0623","examples/serde.rs":"e35659978f11469a7519402971ee0a37fec052e5b4f8f2f58b44ddf5bc4dab55","patches/rules.mk.diff":"38a0d80f966cc4413dff0c924a3cb5311804d835111e0dafa1054431b0277c14","rules.mk":"a9f1aaf7b85c9270b663e1eba553b4d4c498d3bf163265767869219b9a7f15b5","spec.md":"d6ac0c32ef98f96df3634e38d0bad97420126af3fd2e9eec008044a3d63d24c8","src/example_generated.rs":"e0b32b40b22248a2731106bd851a9eb2410b4774a72fc89838b4fbb7c6e393a3","src/external.rs":"300a572fadfe6d1fb05c81183c90de01b8ab923e7df82585ff7da0af0dfabc89","src/external/arbitrary.rs":"cecc68181620c35419342453ac4c38df7272765d7ff168391a7564c6577b52d5","src/external/bytemuck.rs":"290281ecc027b069b72a6e965e23af1b362f70d84a1b6466baae781c42080264","src/external/serde.rs":"25a6360def73c6eaa619520062e76b1073c01bcbc30fb5b3f15da59dff827638","src/internal.rs":"fbd8c745b8ea36f41aa6ceb05624bd4f2f039a627f00044567ef1d1a230f698f","src/iter.rs":"417e4ef92bc69ebb9abc6e205a7fc5d6f66eeba218cb9354990d91e28651c946","src/lib.rs":"d1768248e83e8bd28deadcf5392123ae133018385ee013b9c2229fb96cdc6683","src/parser.rs":"95e6a65479842e3880507d09c0e9c975233733ca007eaf85c384f86c825be89f","src/public.rs":"e9d62d31ddbb6c4f70b701d22e616102edf8aea2dc08c8292e365f6292641c07","src/tests.rs":"61090ec6d034198dfd19c83cabedc4f3c293b85dadf6bf6f7775fd51197c2f50","src/tests/all.rs":"d0c32ed470d43e53c471af1684d871b3fe282508e1a93d0a6b18ea0fafc5e474","src/tests/bitflags_match.rs":"bc99dbb15421c71146a21027c763e12a765c3c9fe90ea09f8264a4618528fced","src/tests/bits.rs":"d083ef28822e1c08c520f37905646c599e607089367c5498aa8777422ed717bc","src/tests/complement.rs":"2eff61b3a7aeeec4c47492468f5d5536d837995fcab87031bb1166296ff1c731","src/tests/contains.rs":"44742bd6e1ee60291da959fef103c137f1aa60cd48720d022dcd574a6747de4a","src/tests/difference.rs":"ade15dac713c90cb075ee0770ce5623233ae1ab676373df550df56ab1d2f31a1","src/tests/empty.rs":"18b93fab7194f5d82addeab1a0ad5efaed806727c479a6c233e602fd1eb3c3dd","src/tests/eq.rs":"471005a8132b16a8900e852cf7d9e864c8bbd7bea01954eb0b91c86f43a89950","src/tests/extend.rs":"366e1d59139af88c4cecb49a76ce21b1e82806dce3abaf5d16dcf65dddd2858c","src/tests/flags.rs":"7c4589c2b41a51ab813e9f40fe1b244fa6943f38d5209f68ff4e1d5106f251f6","src/tests/fmt.rs":"c758caa3f4064756d2478d99a2a758939cc44daa7505d33cae095e10532ee6db","src/tests/from_bits.rs":"47dd1bcf78b24f152fc95109fc0c6dc025c9f667aa5e8bc6d8836fc2cd76dc40","src/tests/from_bits_retain.rs":"4dbcc86e042ab0b2560ced3d0d69e1af803437c398dce7f1be906d92dc06c984","src/tests/from_bits_truncate.rs":"d17efb1bad75c5ff259dd97dedd958c87138bf35352964d041b68bcb11f2d45c","src/tests/from_name.rs":"efc39d196633793996b5fb049d700a50972c89326a55e224049b35c222e5e8a7","src/tests/insert.rs":"206adeff2bbbcf19f3b89404cd7aa00de948299dee68bf232d7e13bc4119f0b5","src/tests/intersection.rs":"cccf16199b719504b3893124501da2037cb754eb1c1e11334e953b96c5778b11","src/tests/intersects.rs":"dc96e54f9b3a3d65ab76015e90c4e7a91d9157512ba0315f8ece08bde148accc","src/tests/is_all.rs":"108180331563f5304d21314a7557bf6e9dd88ade94050408b58856e92b8786a5","src/tests/is_empty.rs":"f4717842e4c55b478bd6e3619c007295536ac19510f4b7df8a5569445c1a7e9e","src/tests/iter.rs":"b7143f58a9a3cecbbb3d84dc4292eb27a26fbddf23b9661270481ea7f377ced3","src/tests/parser.rs":"12513ba119618464e61cb624d9f47c5644b3fe5c90f75b451ea5c1287f3876b5","src/tests/remove.rs":"ace949c743f9c0add2964b3f0f59f5a39d1f20228ec3f5084ee93f331f975007","src/tests/symmetric_difference.rs":"d900443b34855527c5e3dae34a15014db12139edd0393b6dafd05120ff44096a","src/tests/truncate.rs":"357988c61038edfbb8851dd50ac5f8f7dab5a99d5917c39651d44f83c5d7bb19","src/tests/union.rs":"3aa62dbcec0fe9c3302c8425b904b12b6fc303e5adfaed8d087dfdd24142c776","src/tests/unknown.rs":"52f8a803221065b871b12abfdff590eeeeef71ff3e9422ff1865a64ecf2c686e","src/traits.rs":"0d011a3aac117425f5b1ad657c6ac09275b191f10ec895bb4597e56f23e04378"}}
\ No newline at end of file
diff --git a/crates/bitflags/.cargo-checksum.json b/crates/bitflags/.cargo-checksum.json
index 720a2bb..8523588 100644
--- a/crates/bitflags/.cargo-checksum.json
+++ b/crates/bitflags/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"f2635274b6b8c496e855b4cf6ec7852102d794263292fe81f1c088e4ff253716","CODE_OF_CONDUCT.md":"42634d0f6d922f49857175af991802822f7f920487aefa2ee250a50d12251a66","CONTRIBUTING.md":"6c9f96eacb20af877ae2d16f024904f3038b93448a8488e9dbcac0df7f6439a5","Cargo.lock":"6fda29b7daf6af4dc0c5d3f32765e9052192ee960e90f180cdaee3f7f13adca6","Cargo.toml":"f931d505da26360b34271181dcc19b43cf68d11d05514789d24aeb2d814438cc","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"4a9814dba6a6fdacf1ad20edd17905375550b2d4dc407ed5f00f2f0597ab437d","SECURITY.md":"68704c8128fa2e776ed7cbda741fbf61ad52f998a96350ee7ee4dbf64c6573bc","benches/parse.rs":"f1390d62322c6880d65bd931e183d49b313f287879a6bfaa36b1cb1921090b51","examples/custom_bits_type.rs":"e53b32051adc5d97860e0b48c8f3a301a041d73b4939c0d7caa5f0cfcc0b9739","examples/custom_derive.rs":"730589695eb68dda21d0d9f69e90cbdbf9823b13d6f16c5f22b0083c00981813","examples/fmt.rs":"87ba37a1fb8528570c74ea26d8e8948e1179c3d867b928bea1080880258e0a99","examples/macro_free.rs":"69e7f284b53b5214d51228a686e87f127b52a3b74711e45537ebfa5583a180e5","examples/serde.rs":"08b21b35d5c10fdca132fe0f36c8067bb44f559e96617a9257ab6316a20cbc75","spec.md":"fcdd939df30c59b0643be09027df664b71cbea9b9989185441482c5576160fed","src/example_generated.rs":"d018caf059f6ffc4c2403b771a6d76679fa5af03c329a91bd9252957df695e7f","src/external.rs":"734d3f470e6a669297d2df421ce3976fe613d8aa9c071d5ce6fe3ca890e5b815","src/external/arbitrary.rs":"43908bb4fe0a076078dcb3fa70c654aaed8c7b38aa66574414165a82037def83","src/external/bytemuck.rs":"3afcef382122867040fddd5e4153d633d1ed5596fe5d7dfac66a8e61c2513df5","src/external/serde.rs":"4a09db12534a20fe554a08dc5f1c8124b379292d41fa75628abcd2ca21587573","src/internal.rs":"645b13af0c7302258df61239073a4b8203d09f27b6c17f8a6f1f8c3e427f5334","src/iter.rs":"dbaa6437c1c044f689185ce3fafe43df8796bed19bbdd2c20334a52de5eeee73","src/lib.rs":"9d571acbfe33d90e61b097ad3bfa821545c67319558365f8d06337504a2d5dfe","src/parser.rs":"4e788b29f5d0542c409a8b43c703bcb4a6c2a57c181cadd17f565f0abb39681e","src/public.rs":"78ba06e1a5830b36960adf9bd79aaf47d783b9b8a0f1fa33b0d7a340c15fd1d1","src/tests.rs":"fb14f80509a991af90a0aef85e55429ad79d7e499112ff06f8ac54e5a6a7acfa","src/tests/all.rs":"e99a865cd4271a524c2fe95503e96d851b35990570aed6fb2e9dac7a14da31b6","src/tests/bits.rs":"3840c34b2ea5d1802404b9ce5bcc1d3fa6ccd8dfba2e29e6d07c605f817d90df","src/tests/complement.rs":"d0e6d4c3daf49e0a7438c9f1c1ac91fad1b37f258c03593f6cd6a695ee626f5e","src/tests/contains.rs":"58bb3cb8c86550e775d11134da1d4aca85c83f943ea454e3a5f222772c674a24","src/tests/difference.rs":"d0d2b96bb52658b8ac019210da74ca75a53e76622f668855142ea6e97c28cb0e","src/tests/empty.rs":"817d6e93ced7cb7576ff0e334aa1a44703f3f96871ff2c6bdcb8f207e6551f67","src/tests/eq.rs":"b816767680a029e9c163e37af074dd4e604c4a3e4936f829f0ca3774fd5f0e37","src/tests/extend.rs":"5fabb9fd0254c64da019149c24063fceff72da3eb4ad73b57c1cc4c04b008364","src/tests/flags.rs":"2f48d3a25db1cf66fe98c9959abc70875deb9f7b38b2c278dc70c46e0d4ec277","src/tests/fmt.rs":"a2d4148491f3202f030f63633eee941b741e3be29a68cf376f008dbe5cb11e5c","src/tests/from_bits.rs":"d94c65b88bf89961d0cfc1b3152a7f1acc285bae160a1628438effda11b8e2c1","src/tests/from_bits_retain.rs":"980591dfaf91e940f42d9a1ce890f237514dd59d458fc264abcf9ceabbc40677","src/tests/from_bits_truncate.rs":"d3406b5e107ebb6449b98a59eee6cc5d84f947d4aaee1ee7e80dc7202de179f0","src/tests/from_name.rs":"f4a055d1f3c86decef70ef8f3020cef5c4e229718c20b3d59d5a3abc3a8b1298","src/tests/insert.rs":"3fab5da800a6fc0654dfb5f859f95da65a507eb9fda8695083c2712266dff0b9","src/tests/intersection.rs":"baf1454c9e4eba552264870a556ee0032d9f2bb8cac361833d571235e0b52221","src/tests/intersects.rs":"c55e36179fd8bc636f04ea9bbce346dcaafe57915d13f1df28c5b83117dbd08e","src/tests/is_all.rs":"b2f11faa7c954bd85c8fb39999e0c37d983cf7895152bc13c7ddde106aa33b6d","src/tests/is_empty.rs":"11f21323cdca7ff92dd89e09de667dba69e8dce88e2d3e27ea68ace91d15d070","src/tests/iter.rs":"4ba121932b527e787b82745405c7c65c1084c242e2dda3290d475ec160d265e4","src/tests/parser.rs":"fa2fb8dedcf16601af609a5e21d9c5840c7f96a1e3a587f7f2ea3dc8387f7628","src/tests/remove.rs":"6e75f8508d2dc1a2cba89ef691f4387a665a4fd13853bb1dd0fd80c783b89947","src/tests/symmetric_difference.rs":"0a89f084f9de1dd5b1932fe72c3b10a3c93cbaa16832b3a31b6a85e3bbd3ba6e","src/tests/truncate.rs":"683430af4a0e47ec73c737a6908fac5d851bed7c41d47c73a642e96d966aa5ae","src/tests/union.rs":"88f398ee4600bb1e59bf6d02d1f6ff33f5f853eab5a6c700bd8a683c6ee4651a","src/tests/unknown.rs":"fa9e8ee461f176c0d892cde487fef0fe66df2aa5906aaef21b093102e590f5f5","src/traits.rs":"370c414a6b621ffe6e018861b481671dffa2689de39759922d03cdd12e5b612b"},"package":"1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"a10bb136b0ddccebbe5277b4cde669678c5b24b8732ae470a324493518636bb4","CODE_OF_CONDUCT.md":"42634d0f6d922f49857175af991802822f7f920487aefa2ee250a50d12251a66","CONTRIBUTING.md":"6c9f96eacb20af877ae2d16f024904f3038b93448a8488e9dbcac0df7f6439a5","Cargo.lock":"c16d543b0ce32eb310b0900160cdd76ce86081fec5cb9e419fb4c60d1f9c5452","Cargo.toml":"6a92dee6cbf715724a93076bccd129d3e394732c0fe46182d1c3723c4811abbe","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"ea44f8037033a35ff94960c00a33de4a11c0d63b465a1951c74631b655586116","SECURITY.md":"68704c8128fa2e776ed7cbda741fbf61ad52f998a96350ee7ee4dbf64c6573bc","benches/parse.rs":"f1390d62322c6880d65bd931e183d49b313f287879a6bfaa36b1cb1921090b51","examples/custom_bits_type.rs":"e53b32051adc5d97860e0b48c8f3a301a041d73b4939c0d7caa5f0cfcc0b9739","examples/custom_derive.rs":"730589695eb68dda21d0d9f69e90cbdbf9823b13d6f16c5f22b0083c00981813","examples/fmt.rs":"87ba37a1fb8528570c74ea26d8e8948e1179c3d867b928bea1080880258e0a99","examples/macro_free.rs":"69e7f284b53b5214d51228a686e87f127b52a3b74711e45537ebfa5583a180e5","examples/serde.rs":"08b21b35d5c10fdca132fe0f36c8067bb44f559e96617a9257ab6316a20cbc75","spec.md":"fcdd939df30c59b0643be09027df664b71cbea9b9989185441482c5576160fed","src/example_generated.rs":"d018caf059f6ffc4c2403b771a6d76679fa5af03c329a91bd9252957df695e7f","src/external.rs":"734d3f470e6a669297d2df421ce3976fe613d8aa9c071d5ce6fe3ca890e5b815","src/external/arbitrary.rs":"43908bb4fe0a076078dcb3fa70c654aaed8c7b38aa66574414165a82037def83","src/external/bytemuck.rs":"3afcef382122867040fddd5e4153d633d1ed5596fe5d7dfac66a8e61c2513df5","src/external/serde.rs":"4a09db12534a20fe554a08dc5f1c8124b379292d41fa75628abcd2ca21587573","src/internal.rs":"645b13af0c7302258df61239073a4b8203d09f27b6c17f8a6f1f8c3e427f5334","src/iter.rs":"dbaa6437c1c044f689185ce3fafe43df8796bed19bbdd2c20334a52de5eeee73","src/lib.rs":"81b41f0a9097e201d81ba98693aa59e29d1ba2cc06aebe2aa9b0ca8cf51aa5fc","src/parser.rs":"4e788b29f5d0542c409a8b43c703bcb4a6c2a57c181cadd17f565f0abb39681e","src/public.rs":"78ba06e1a5830b36960adf9bd79aaf47d783b9b8a0f1fa33b0d7a340c15fd1d1","src/tests.rs":"1ee611a35fa44d28c5cdbcc662da277fe9c1d679cef34c7bf3ac2a569ff3464f","src/tests/all.rs":"e99a865cd4271a524c2fe95503e96d851b35990570aed6fb2e9dac7a14da31b6","src/tests/bitflags_match.rs":"601ad186930908b681f24312132000518fc927ba569d394e5c4440462f037aec","src/tests/bits.rs":"3840c34b2ea5d1802404b9ce5bcc1d3fa6ccd8dfba2e29e6d07c605f817d90df","src/tests/complement.rs":"d0e6d4c3daf49e0a7438c9f1c1ac91fad1b37f258c03593f6cd6a695ee626f5e","src/tests/contains.rs":"58bb3cb8c86550e775d11134da1d4aca85c83f943ea454e3a5f222772c674a24","src/tests/difference.rs":"d0d2b96bb52658b8ac019210da74ca75a53e76622f668855142ea6e97c28cb0e","src/tests/empty.rs":"817d6e93ced7cb7576ff0e334aa1a44703f3f96871ff2c6bdcb8f207e6551f67","src/tests/eq.rs":"b816767680a029e9c163e37af074dd4e604c4a3e4936f829f0ca3774fd5f0e37","src/tests/extend.rs":"5fabb9fd0254c64da019149c24063fceff72da3eb4ad73b57c1cc4c04b008364","src/tests/flags.rs":"2f48d3a25db1cf66fe98c9959abc70875deb9f7b38b2c278dc70c46e0d4ec277","src/tests/fmt.rs":"a2d4148491f3202f030f63633eee941b741e3be29a68cf376f008dbe5cb11e5c","src/tests/from_bits.rs":"d94c65b88bf89961d0cfc1b3152a7f1acc285bae160a1628438effda11b8e2c1","src/tests/from_bits_retain.rs":"980591dfaf91e940f42d9a1ce890f237514dd59d458fc264abcf9ceabbc40677","src/tests/from_bits_truncate.rs":"d3406b5e107ebb6449b98a59eee6cc5d84f947d4aaee1ee7e80dc7202de179f0","src/tests/from_name.rs":"f4a055d1f3c86decef70ef8f3020cef5c4e229718c20b3d59d5a3abc3a8b1298","src/tests/insert.rs":"3fab5da800a6fc0654dfb5f859f95da65a507eb9fda8695083c2712266dff0b9","src/tests/intersection.rs":"baf1454c9e4eba552264870a556ee0032d9f2bb8cac361833d571235e0b52221","src/tests/intersects.rs":"c55e36179fd8bc636f04ea9bbce346dcaafe57915d13f1df28c5b83117dbd08e","src/tests/is_all.rs":"b2f11faa7c954bd85c8fb39999e0c37d983cf7895152bc13c7ddde106aa33b6d","src/tests/is_empty.rs":"11f21323cdca7ff92dd89e09de667dba69e8dce88e2d3e27ea68ace91d15d070","src/tests/iter.rs":"4ba121932b527e787b82745405c7c65c1084c242e2dda3290d475ec160d265e4","src/tests/parser.rs":"fa2fb8dedcf16601af609a5e21d9c5840c7f96a1e3a587f7f2ea3dc8387f7628","src/tests/remove.rs":"6e75f8508d2dc1a2cba89ef691f4387a665a4fd13853bb1dd0fd80c783b89947","src/tests/symmetric_difference.rs":"0a89f084f9de1dd5b1932fe72c3b10a3c93cbaa16832b3a31b6a85e3bbd3ba6e","src/tests/truncate.rs":"683430af4a0e47ec73c737a6908fac5d851bed7c41d47c73a642e96d966aa5ae","src/tests/union.rs":"88f398ee4600bb1e59bf6d02d1f6ff33f5f853eab5a6c700bd8a683c6ee4651a","src/tests/unknown.rs":"fa9e8ee461f176c0d892cde487fef0fe66df2aa5906aaef21b093102e590f5f5","src/traits.rs":"370c414a6b621ffe6e018861b481671dffa2689de39759922d03cdd12e5b612b"},"package":"8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"}
\ No newline at end of file
diff --git a/crates/bitflags/Android.bp b/crates/bitflags/Android.bp
index 2f88ae0..e703e07 100644
--- a/crates/bitflags/Android.bp
+++ b/crates/bitflags/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "bitflags",
     cargo_env_compat: true,
-    cargo_pkg_version: "2.7.0",
+    cargo_pkg_version: "2.8.0",
     crate_root: "src/lib.rs",
     edition: "2021",
     apex_available: [
diff --git a/crates/bitflags/CHANGELOG.md b/crates/bitflags/CHANGELOG.md
index fc6134a..95043da 100644
--- a/crates/bitflags/CHANGELOG.md
+++ b/crates/bitflags/CHANGELOG.md
@@ -1,3 +1,14 @@
+# 2.8.0
+
+## What's Changed
+* feat(core): Add bitflags_match macro for bitflag matching by @YuniqueUnic in https://github.com/bitflags/bitflags/pull/423
+* Finalize bitflags_match by @KodrAus in https://github.com/bitflags/bitflags/pull/431
+
+## New Contributors
+* @YuniqueUnic made their first contribution in https://github.com/bitflags/bitflags/pull/423
+
+**Full Changelog**: https://github.com/bitflags/bitflags/compare/2.7.0...2.8.0
+
 # 2.7.0
 
 ## What's Changed
diff --git a/crates/bitflags/Cargo.lock b/crates/bitflags/Cargo.lock
index 10910a3..62205d8 100644
--- a/crates/bitflags/Cargo.lock
+++ b/crates/bitflags/Cargo.lock
@@ -13,7 +13,7 @@
 
 [[package]]
 name = "bitflags"
-version = "2.7.0"
+version = "2.8.0"
 dependencies = [
  "arbitrary",
  "bytemuck",
@@ -39,9 +39,9 @@
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.9.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "882ce8da04f2b62f52b2485ed297687a43a8438374e7c2261a80601ecb4bac04"
+checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -107,9 +107,9 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.92"
+version = "1.0.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
+checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
 dependencies = [
  "unicode-ident",
 ]
@@ -193,9 +193,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.95"
+version = "2.0.96"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a"
+checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -356,9 +356,9 @@
 
 [[package]]
 name = "winnow"
-version = "0.6.22"
+version = "0.6.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980"
+checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a"
 dependencies = [
  "memchr",
 ]
diff --git a/crates/bitflags/Cargo.toml b/crates/bitflags/Cargo.toml
index 1e9a2ff..cc2990d 100644
--- a/crates/bitflags/Cargo.toml
+++ b/crates/bitflags/Cargo.toml
@@ -13,7 +13,7 @@
 edition = "2021"
 rust-version = "1.56.0"
 name = "bitflags"
-version = "2.7.0"
+version = "2.8.0"
 authors = ["The Rust Project Developers"]
 build = false
 exclude = [
diff --git a/crates/bitflags/METADATA b/crates/bitflags/METADATA
index a0db309..6a88fe0 100644
--- a/crates/bitflags/METADATA
+++ b/crates/bitflags/METADATA
@@ -1,17 +1,17 @@
 name: "bitflags"
 description: "A macro to generate structures which behave like bitflags."
 third_party {
-  version: "2.7.0"
+  version: "2.8.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2025
     month: 1
-    day: 14
+    day: 15
   }
   homepage: "https://crates.io/crates/bitflags"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/bitflags/bitflags-2.7.0.crate"
-    version: "2.7.0"
+    value: "https://static.crates.io/crates/bitflags/bitflags-2.8.0.crate"
+    version: "2.8.0"
   }
 }
diff --git a/crates/bitflags/README.md b/crates/bitflags/README.md
index 19f9268..602f12e 100644
--- a/crates/bitflags/README.md
+++ b/crates/bitflags/README.md
@@ -28,7 +28,7 @@
 
 ```toml
 [dependencies]
-bitflags = "2.7.0"
+bitflags = "2.8.0"
 ```
 
 and this to your source code:
diff --git a/crates/bitflags/src/lib.rs b/crates/bitflags/src/lib.rs
index 97e808f..57d380d 100644
--- a/crates/bitflags/src/lib.rs
+++ b/crates/bitflags/src/lib.rs
@@ -17,7 +17,7 @@
 
 ```toml
 [dependencies.bitflags]
-version = "2.7.0"
+version = "2.8.0"
 ```
 
 ## Generating flags types
@@ -792,6 +792,104 @@
     };
 }
 
+/// A macro that matches flags values, similar to Rust's `match` statement.
+///
+/// In a regular `match` statement, the syntax `Flag::A | Flag::B` is interpreted as an or-pattern,
+/// instead of the bitwise-or of `Flag::A` and `Flag::B`. This can be surprising when combined with flags types
+/// because `Flag::A | Flag::B` won't match the pattern `Flag::A | Flag::B`. This macro is an alternative to
+/// `match` for flags values that doesn't have this issue.
+///
+/// # Syntax
+///
+/// ```ignore
+/// bitflags_match!(expression, {
+///     pattern1 => result1,
+///     pattern2 => result2,
+///     ..
+///     _ => default_result,
+/// })
+/// ```
+///
+/// The final `_ => default_result` arm is required, otherwise the macro will fail to compile.
+///
+/// # Examples
+///
+/// ```rust
+/// use bitflags::{bitflags, bitflags_match};
+///
+/// bitflags! {
+///     #[derive(PartialEq)]
+///     struct Flags: u8 {
+///         const A = 1 << 0;
+///         const B = 1 << 1;
+///         const C = 1 << 2;
+///     }
+/// }
+///
+/// let flags = Flags::A | Flags::B;
+///
+/// bitflags_match!(flags, {
+///     Flags::A | Flags::B => println!("A and/or B are set"),
+///     _ => println!("neither A nor B are set"),
+/// })
+/// ```
+///
+/// # How it works
+///
+/// The macro expands to a series of `if` statements, checking equality between the input expression
+/// and each pattern. This allows for correct matching of bitflag combinations, which is not possible
+/// with a regular match expression due to the way bitflags are implemented.
+///
+/// Patterns are evaluated in order.
+#[macro_export]
+macro_rules! bitflags_match {
+    ($operation:expr, {
+        $($t:tt)*
+    }) => {
+        // Expand to a closure so we can use `return`
+        // This makes it possible to apply attributes to the "match arms"
+        (|| {
+            $crate::__bitflags_match!($operation, { $($t)* })
+        })()
+    };
+}
+
+/// Expand the `bitflags_match` macro
+#[macro_export]
+#[doc(hidden)]
+macro_rules! __bitflags_match {
+    // Eat an optional `,` following a block match arm
+    ($operation:expr, { $pattern:expr => { $($body:tt)* } , $($t:tt)+ }) => {
+        $crate::__bitflags_match!($operation, { $pattern => { $($body)* } $($t)+ })
+    };
+    // Expand a block match arm `A => { .. }`
+    ($operation:expr, { $pattern:expr => { $($body:tt)* } $($t:tt)+ }) => {
+        {
+            if $operation == $pattern {
+                return {
+                    $($body)*
+                };
+            }
+
+            $crate::__bitflags_match!($operation, { $($t)+ })
+        }
+    };
+    // Expand an expression match arm `A => x,`
+    ($operation:expr, { $pattern:expr => $body:expr , $($t:tt)+ }) => {
+        {
+            if $operation == $pattern {
+                return $body;
+            }
+
+            $crate::__bitflags_match!($operation, { $($t)+ })
+        }
+    };
+    // Expand the default case
+    ($operation:expr, { _ => $default:expr $(,)? }) => {
+        $default
+    }
+}
+
 /// A macro that processed the input to `bitflags!` and shuffles attributes around
 /// based on whether or not they're "expression-safe".
 ///
diff --git a/crates/bitflags/src/tests.rs b/crates/bitflags/src/tests.rs
index 28ed0a6..547c28d 100644
--- a/crates/bitflags/src/tests.rs
+++ b/crates/bitflags/src/tests.rs
@@ -1,4 +1,5 @@
 mod all;
+mod bitflags_match;
 mod bits;
 mod complement;
 mod contains;
diff --git a/crates/bitflags/src/tests/bitflags_match.rs b/crates/bitflags/src/tests/bitflags_match.rs
new file mode 100644
index 0000000..93190f8
--- /dev/null
+++ b/crates/bitflags/src/tests/bitflags_match.rs
@@ -0,0 +1,93 @@
+bitflags! {
+    #[derive(PartialEq)]
+    struct Flags: u8 {
+        const A = 1 << 0;
+        const B = 1 << 1;
+        const C = 1 << 2;
+        const D = 1 << 3;
+    }
+}
+
+fn flag_to_string(flag: Flags) -> String {
+    bitflags_match!(flag, {
+        Flags::A => "A".to_string(),
+        Flags::B => { "B".to_string() }
+        Flags::C => "C".to_string(),
+        Flags::D => "D".to_string(),
+        Flags::A | Flags::B => "A or B".to_string(),
+        Flags::A & Flags::B => { "A and B | empty".to_string() },
+        Flags::A ^ Flags::B => "A xor B".to_string(),
+        Flags::A | Flags::B | Flags::C => "A or B or C".to_string(),
+        Flags::A & Flags::B & Flags::C => "A and B and C".to_string(),
+        Flags::A ^ Flags::B ^ Flags::C => "A xor B xor C".to_string(),
+        Flags::A | Flags::B | Flags::C | Flags::D => "All flags".to_string(),
+        _ => "Unknown combination".to_string()
+    })
+}
+
+#[test]
+fn test_single_flags() {
+    assert_eq!(flag_to_string(Flags::A), "A");
+    assert_eq!(flag_to_string(Flags::B), "B");
+    assert_eq!(flag_to_string(Flags::C), "C");
+    assert_eq!(flag_to_string(Flags::D), "D");
+}
+
+#[test]
+fn test_or_operations() {
+    assert_eq!(flag_to_string(Flags::A | Flags::B), "A or B");
+    assert_eq!(
+        flag_to_string(Flags::A | Flags::B | Flags::C),
+        "A or B or C"
+    );
+    assert_eq!(
+        flag_to_string(Flags::A | Flags::B | Flags::C | Flags::D),
+        "All flags"
+    );
+}
+
+#[test]
+fn test_and_operations() {
+    assert_eq!(flag_to_string(Flags::A & Flags::A), "A");
+    assert_eq!(flag_to_string(Flags::A & Flags::B), "A and B | empty");
+    assert_eq!(
+        flag_to_string(Flags::A & Flags::B & Flags::C),
+        "A and B | empty"
+    ); // Since A, B, and C are mutually exclusive, the result of A & B & C is 0 ==> A & B & C = 0000 (i.e., empty).
+       // However, in the bitflags_match! statement (actually is if {..} else if {..} .. else {..}),
+       // the "A & B = 0000" condition is listed first, so 0000 will match "A & B" first,
+       // resulting in the output of the "A and B | empty" branch.
+    assert_eq!(
+        flag_to_string(Flags::A & Flags::B & Flags::C & Flags::D),
+        "A and B | empty"
+    );
+}
+
+#[test]
+fn test_xor_operations() {
+    assert_eq!(flag_to_string(Flags::A ^ Flags::B), "A or B"); // A | B = A ^ B == 0011
+    assert_eq!(flag_to_string(Flags::A ^ Flags::A), "A and B | empty");
+    assert_eq!(
+        flag_to_string(Flags::A ^ Flags::B ^ Flags::C),
+        "A or B or C"
+    );
+}
+
+#[test]
+fn test_complex_operations() {
+    assert_eq!(flag_to_string(Flags::A | (Flags::B & Flags::C)), "A");
+    assert_eq!(
+        flag_to_string((Flags::A | Flags::B) & (Flags::B | Flags::C)),
+        "B"
+    );
+    assert_eq!(
+        flag_to_string(Flags::A ^ (Flags::B | Flags::C)),
+        "A or B or C"
+    );
+}
+
+#[test]
+fn test_empty_and_full_flags() {
+    assert_eq!(flag_to_string(Flags::empty()), "A and B | empty");
+    assert_eq!(flag_to_string(Flags::all()), "All flags");
+}
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index be446b4..610b608 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -8,7 +8,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a72425af5ca5fea30463427958c9fdc07ac24e58d0edafb7cb14ebf7706f2350"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
 ]
 
 [[package]]
@@ -18,7 +18,7 @@
 checksum = "9e42f25ac5fa51f4188d14baf8f387a97dcd8639644b2f3df948bf5f6dd7d6fa"
 dependencies = [
  "bit_field",
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "log",
 ]
 
@@ -122,7 +122,7 @@
  "bindgen 0.69.5",
  "bindgen-cli",
  "bit_field",
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "bitreader",
  "bstr",
  "buddy_system_allocator",
@@ -862,7 +862,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -883,7 +883,7 @@
 checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
 dependencies = [
  "annotate-snippets",
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cexpr",
  "clang-sys",
  "itertools 0.12.1",
@@ -928,9 +928,9 @@
 
 [[package]]
 name = "bitflags"
-version = "2.7.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be"
+checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
 
 [[package]]
 name = "bitreader"
@@ -1736,7 +1736,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98888c4bbd601524c11a7ed63f814b8825f420514f78e96f752c437ae9cbb5d1"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
@@ -1840,7 +1840,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "libc",
 ]
 
@@ -1986,7 +1986,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b64b34f4efd515f905952d91bc185039863705592c0c53ae6d979805dd154520"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "byteorder",
  "core-foundation",
  "core-graphics",
@@ -2202,7 +2202,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "45bf55ba6dd53ad0ac115046ff999c5324c283444ee6e0be82454c4e8eb2f36a"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "drm",
  "drm-fourcc",
  "gbm-sys",
@@ -2226,7 +2226,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "31c683a9f13de31432e6097131d5f385898c7f0635c0f392b9d0fa165063c8ac"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cfg-if",
  "log",
  "managed",
@@ -2324,7 +2324,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09831ec59b80be69e75d29cf36e16afbbe5fd1af9c1bf4689ad91c77db5aa6a6"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "libc",
  "nix 0.27.1",
 ]
@@ -2664,7 +2664,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "futures-core",
  "inotify-sys",
  "libc",
@@ -2848,7 +2848,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "93edd9cd673087fa7518fd63ad6c87be2cd9b4e35034b1873f3e3258c018275b"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "libbpf-sys",
  "libc",
  "vsprintf",
@@ -2913,7 +2913,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "libc",
 ]
 
@@ -3366,7 +3366,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cfg-if",
  "libc",
 ]
@@ -3377,7 +3377,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cfg-if",
  "cfg_aliases 0.1.1",
  "libc",
@@ -3390,7 +3390,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cfg-if",
  "cfg_aliases 0.2.1",
  "libc",
@@ -3597,7 +3597,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cfg-if",
  "foreign-types 0.3.1",
  "libc",
@@ -4357,7 +4357,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
 ]
 
 [[package]]
@@ -4464,7 +4464,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "fallible-iterator 0.2.0",
  "fallible-streaming-iterator",
  "hashlink",
@@ -4518,7 +4518,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "errno",
  "libc",
  "linux-raw-sys 0.4.14",
@@ -5554,7 +5554,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6679b7fc2f6d6d2ea2f67555ef3ed9d71d30c5021faf9193091a5192db7dc468"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cfg-if",
  "log",
  "ptr_meta",
@@ -5581,7 +5581,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f6d465de2c918779dafb769a5a4fe8d6e4fb7cc4cc6cb1a735f2f6ec68beea4"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "ptr_meta",
  "uguid",
 ]
@@ -5776,7 +5776,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "18d8b176d4d3e420685e964f87c25df5fdd5b26d7eb0d0e7c892d771f5b81035"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "cfg-if",
  "libc",
  "nix 0.27.1",
@@ -5876,7 +5876,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "aa40e09453618c7a927c08c5a990497a2954da7c2aaa6c65e0d4f0fc975f6114"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "log",
  "zerocopy 0.7.35",
 ]
@@ -6140,7 +6140,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2f0a4bab6d420ee4a609b63ef4d5f9b5d309c6b93a029fccab70f2594c0cb3ae"
 dependencies = [
- "bitflags 2.7.0",
+ "bitflags 2.8.0",
  "downcast-rs",
  "io-lifetimes",
  "rustix",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 5511e56..b27d175 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -37,7 +37,7 @@
 bindgen = "=0.69.5"
 bindgen-cli = "=0.69.5"
 bit_field = "=0.10.2"
-bitflags = "=2.7.0"
+bitflags = "=2.8.0"
 bitreader = "=0.3.11"
 bstr = "=1.3.0"
 buddy_system_allocator = "=0.11.0"