Files
archy/core/target/debug/deps/libbitflags-1a6964329366026c.rmeta
T

98 lines
42 KiB
Plaintext
Raw Normal View History

2026-01-24 22:59:20 +00:00
rust
ã§#rustc 1.93.0 (254b59607 2026-01-19)Á³VOÐêùÿ²?ÑL¼§Ì±-a7a40eb546f9e2b0Áë&Gf·Ã ¬ëñq:¤»b-bb76018b1173caf6Áexample_generatedÁŒò<åñŠœïñìåñtestsÁ,²òà$§ò³_coreÁbitflagsÁ__impl_all_bitflagsÁ__impl_bitflagsÁ³é,ÇHõDÜVœÿ\ž|™düÓ¡±üÓOL A typesafe bitmask flag generator useful for sets of C-style bitmask flags.Áü£@= It can be used for creating typesafe wrappers around C APIs.ÁäËüèMJ The `bitflags!` macro generates `struct`s that manage a set of flags. TheÁü¶MJ flags should only be defined for integer types, otherwise unexpected typeÁü„%" errors may occur at compile time.ÁªË
# ExampleÁ¼Ë ```ÁÜÈ use bitflags::bitflags;ÁäË bitflags! {ÁÜø struct Flags: u32 {Áü”! const A = 0b00000001;Áü¶! const B = 0b00000010;ÁüØ! const C = 0b00000100;ÁüúC@ const ABC = Self::A.bits | Self::B.bits | Self::C.bits;ÁÎË fn main() {Áüâ%" let e1 = Flags::A | Flags::C;Áüˆ %" let e2 = Flags::B | Flags::C;Áü® 52 assert_eq!((e1 | e2), Flags::ABC); // unionÁüä <9 assert_eq!((e1 & e2), Flags::C); // intersectionÁü¡
>; assert_eq!((e1 - e2), Flags::A); // set differenceÁüà
>; assert_eq!(!e2, Flags::A); // set complementÁ   ¾­ Ëü± eb See [`example_generated::Flags`](./example_generated/struct.Flags.html) for documentation of codeÁü— 1. generated by the above `bitflags!` expansion.ÁÉ ËüÍ DA The generated `struct`s can also be extended with type and traitÁ¤’
 implementations:Á§
Ë
¾Œ³
 use std::fmt;ÁÅ
ËÜÉ
Íå
Ë
ûÜù
ü•!ü·!àÿ éË„í
impl Flags {Áüþ! pub fn clear(&mut self) {Áü OL self.bits = 0; // The `bits` field can be accessed from within theÁüðSP // same module where the `bitflags!` macro was invoked.Áÿ ÔËüØ! impl fmt::Display for Flags {Áüú>; fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {Áä¹ write!(f, "hi!")Áÿ æË¨ üú,) let mut flags = Flags::A | Flags::B;Á´§ flags.clear();Áü¾" assert!(flags.is_empty());Áüá0- assert_eq!(format!("{}", flags), "hi!");Áü’B? assert_eq!(format!("{:?}", Flags::A | Flags::B), "A | B");ÁüÕ30 assert_eq!(format!("{:?}", Flags::B), "B");Á,‰ <¾Ë„›
# VisibilityÁ¬Ëü°NK The generated structs and their associated flag constants are not exportedÁüÿMJ out of the current module by default. A definition can be exported out ofÁüÍ74 the current module by adding `pub` before `struct`:ÁË<‰¾Œ‘ mod example {Áü£ use bitflags::bitflags;ÁÃËœÇ bitflags! {ÁüÛ$! pub struct Flags1: u32 {Áü€%" const A = 0b00000001;Á
´Ë|¸ # pubÁüÈ  struct Flags2: u32 {Áüé%" const B = 0b00000010;Ál§Lÿ ­Ë¨ üÁ'$ let flag1 = example::Flags1::A;ÁüéFC let flag2 = example::Flags2::B; // error: const `B` is privateÁ ¾¾Ë„Â
# AttributesÁÓËü×IF Attributes can be attached to the generated `struct`s by placing themÁü¡  before the `struct` keyword.ÁÂË´Æ ## RepresentationsÁÝËüáRO It's valid to add a `#[repr(C)]` or `#[repr(transparent)]` attribute to a typeÁü´UR generated by `bitflags!`. In these cases, the type is guaranteed to be a newtype.ÁŠË¾Ü–ͲËûäÆ #[repr(transparent)]ÁÜãüÿ!ü¡!àüÃ!Šÿ ¾ýËÜ # Trait implementationsÁËü¡JG The `Copy`, `Clone`, `PartialEq`, `Eq`, `PartialOrd`, `Ord` and `Hash`ÁüìTQ traits are automatically derived for the `struct`s using the `derive` attribute.ÁüÁFC Additional traits can be derived by providing an explicit `derive`ÁÔˆ  attribute on `struct`.Á£ Ëü§ MJ The `Extend` and `FromIterator` traits are implemented for the `struct`s,Áüõ PM too: `Extend` adds the union of the instances of the `struct` iterated over,ÁüÆ!.+ while `FromIterator` calculates the union.Áõ!Ëüù!MJ The `Binary`, `Debug`, `LowerHex`, `Octal` and `UpperHex` traits are alsoÁüÇ"DA implemented by displaying the bits value of the internal struct.ÁŒ#Ë#
## OperatorsÁ¡#Ëü¥#NK The following operator traits are implemented for the generated `struct`s:Áô#Ëüø#&# - `BitOr` and `BitOrAssign`: unionÁüŸ$/, - `BitAnd` and `BitAndAssign`: intersectionÁüÏ$)& - `BitXor` and `BitXorAssign`: toggleÁüù$+( - `Sub` and `SubAssign`: set differenceÁÜ¥% - `Not`: set complementÁÁ%ËlÅ%
# MethodsÁÓ%Ëü×%B? The following methods are defined for the generated `struct`s:Áš&Ëüž&$! - `empty`: an empty set of flagsÁüÃ&)& - `all`: the set of all defined flagsÁüí&96 - `bits`: the raw value of the flags currently storedÁü§'JG - `from_bits`: convert from underlying bit representation, unless thatÁüò'KH representation contains bits that do not correspond to aÁü¾( defined flagÁüÞ(PM - `from_bits_truncate`: convert from underlying bit representation, droppingÁü¯)LI any bits that do not correspond to defined flagsÁüü)PM - `from_bits_unchecked`: convert from underlying bit representation, keepingÁüÍ*NK all bits (even those not corresponding to definedÁüœ+# flags)ÁüÀ+96 - `is_empty`: `true` if no flags are currently storedÁüú+MJ - `is_all`: `true` if currently set flags exactly equal all defined flagsÁüÈ,OL - `intersects`: `true` if there are flags common to both `self` and `other`Áü˜-SP - `contains`: `true` if all of the flags in `other` are contained within `self`Áüì-41 - `insert`: inserts the specified flags in-placeÁü¡.41 - `remove`: removes the specified flags in-placeÁüÖ.PM - `toggle`: the specified flags will be inserted if not present, and removedÁä§/ if they are.ÁüÄ/QN - `set`: inserts or removes the specified flags depending on the passed valueÁü–0SP - `intersection`: returns a new set of flags, containing only the flags presentÁüê0PM in both `self` and `other` (the argument to the function).Áü»1JG - `union`: returns a new set of flags, containing any flags present inÁü†2GD either `self` or `other` (the argument to the function).ÁüÎ2OL - `difference`: returns a new set of flags, containing all flags present inÁüž3KH `self` without any of the flags present in `other` (theÁüê3.+ argument to the function).Áü™4NK - `symmetric_difference`: returns a new set of flags, containing all flagsÁüè4OL present in either `self` or `other` (the argumentÁü¸5=: to the function), but not both.Áüö5NK - `complement`: returns a new set of flags, containing all flags which areÁüÅ6KH not set in `self`, but which are allowed for this type.Á7Ët•7 ## DefaultÁ¤7Ëü¨7SP The `Default` trait is not automatically implemented for the generated structs.Áü7Ëü€8WT If your default value is equal to `0` (which is the same value as calling `empty()`ÁüØ8>; on the generated struct), you can simply derive `Default`:Á—9Ë<›9¾Ü£9Í¿9Ë|Ã9ûüÓ90- // Results in default value with bits: 0ÁÔ„: #[derive(Default)]ÁÜŸ:ü»:!üÝ:!àüÿ:!ŠL¡;ÿ,«; ±;Ë|µ;¨ üÅ;85 let derived_default: Flags = Default::default();Áüþ;.+ assert_eq!(derived_default.bits(), 0);Á,­< <³<¾»<Ëü¿<WT If your default value is not equal to `0` you need to implement `Default` yourself:Á—=Ë<›=¾Ü£=Í¿=Ë|Ã=ûÜÓ=üï=!ü‘>!àü³>!ŠLÕ>ÿ,ß> å>Ëüé>(% // explicit `Default` implementationÁä’? impl Default for Flags {Áü¯? fn default() -> Flags {ÁüÏ? Flags::A | Flags::CÁLï?ÿ,ù? ÿ?Ë|ƒ@¨ ü“@<9 let implemented_default: Flags = Default::default();ÁüÐ@?< assert_eq!(implemented_default, (Flags::A | Flags::C));Á,A <A¾žAË„¢A
# Zero FlagsÁ³AËü·Aa^ Flags with a value equal to zero will have some strange behavior that one should be aware of.Á™BË<B¾Ü¥BÍÁBË|ÅBûÜÕBüñB$! const NONE = 0b00000000;
ü”M<Ú
üÑM>Ÿ üN>æ ,ÏN <ÕN¾ÝNËüáND¤¦OÍ»OË<¿O¾ŒÇOÿÙOËÜÝOÍùOË|ýOûÜPü©P!üËP!àLíPÿ,÷P ýPËQˆü’Q!¡ü´QOËü„RS£LØRÿ,âR èRËüìR! üŽS>ÊäÍSLêSÿ,ôS úSË|þS¨ üŽT,á´»TüÒT"´üõT0ßü¦UB˜üéU3ã,V <£V¾&ü«V#S åV ‰\ ëV ÚX, õV öV …W+ ÷V øV „W, ùV8outerÁ,úV& ÿV8«
$€W
†W, W8¬W& ”W8¬•W84™W,  W8BitFlagsÁD¡W& ©W8Û,ªW& ¯W, ±W8 ²W& ³W8´W ·W ÁX, ÅW ÆW ¶X, ØW ÙW öW+ ÚW ÛW õW, ÜW8innerÁ,ÝW& âW8Û,ãW, éW êW óW, ëW8þ$ìW& ðW8ñW
ôW
÷W8,‰X, X8FlagÁ$X& ”X8Û,•X X, X8˜,žX& £X8ï$¤X% ¨X
·X, ÌX ÍX ÓX, ÎX8 ÏX& ÐX8ÑX
ÔX*ÜX ßX ø[, éX êX ôX+ ëX ìX óX, íX8ãX,îX
õX+ ÿX €Y ºY84Y ‡Y ¹Y
8$ˆY$ ŒY8ÛLŽY$ —Y8™Y$ Y8u,Y$ ¢Y8ÜT¤Y$ ®Y8Ô°Y$ ³Y8¦$µY, ÄY8¬ÅY84ÉY, ÐY8ÁYDÑY ÚY úY8bitsÁ$èY& ìY, îY8 ïY$ ðY8ž|…Z ”Z Z À[, ¤Z8ÁYD¥Z& ­Z, ¯Z8 °Z ²Z ¶[, ÄZ ÅZ §[ , ÛZ ÜZ ðZ+ ÝZ ÞZ ïZ, ßZ8áZ,àZ, æZ çZ íZ, èZ8þ$éZ
îZ
ñZ, ‡[8Ú[$ˆ[ [, [8˜,[% •[
¨[8õDË[ Ó[ Õ[ ò[, ã[ ä[ ç[, å[8Ï\ æ[
è[% ù[ ÿ[ €\*\ …\ †\% ‡\üò\ ¡å\ è\ ï\8°4é\tã\&ü¿\#b “] Öc ™] Ã^
, £]8ÁYD¤]& ¬]8Û,­]& ²], ´]8 µ]& ¶]8·] º] ½^, È] É] ²^
2026-01-24 22:59:20 +00:00
, Û] Ü] ø]+ Ý] Þ] ÷], ß]8Î$à]& ä]8Û,å], ë] ì] õ], í]8þ$î]& ò]8ó]
ö]
ù], ^8Ú[$Œ^& ^8Û,^ —^, ™^8˜,š^& Ÿ^8ï$ ^% ¤^ ³^*Å^ È^ ÿb+ Ž_ _ ¥_8è,_ •_ ¤_8non_snake_caseÁt_8,¯_8
__BitFlagsÁTµ_ À_ `, Î_ Ï_ ` 8,á_, ç_8Ú[$è_& ì_, î_8 ï_ ñ_7ì ó_% ô_ ƒ`+ —` ˜` ®`8è,™` ž` ­`8ÎftŸ`8$¸`8ñfT½`8
È`, Ì`8ÁYDÍ` Ö` Áb, ä` å` ¶b8ž|÷` †a ˆa ¨b+ ža Ÿa ±a8è, a ¥a °a8ÿT¦a, Ça Èa Ýa- Éa+ Ëa Ìa Üa, Ía8Î$Îa, Óa Ôa Úa, Õa8þ$Öa
Ûa
Þa8,ôa, úa8Ú[$ûa& ÿa, b8 b „b8$†b'Šb, Œb8Ú[$b b8¥_$b% b ·b8$Ëb Ðb ùb8¥_$Òb& Öb, Øb Ùb õb Úb8$Ûb8àb8ñfTãb íb'îb, ðb8Ú[$ñb öb ÷b% €c †c ¯c
, c8ÁYDc& ™c8Û,šc& Ÿc, ¡c8 ¢c& £c8¤c §c ©c*±c ´c Óc8$¾c Ãc Íc8¥_$Åc& Éc7ì Ëc% ÔcäŒd¡ÿc ‚d ‰d8°4ƒdtýc&üÙc#q ©d Üñ ¯d Ùe
, ¹d8ÁYDºd& Âd8Û,Ãd& Èd, Êd8 Ëd& Ìd8Íd Ðd Óe, Þd ßd Èe
, ñd òd Že+ ód ôd e, õd8Î$öd& úd8Û,ûd, e e e, ƒe8þ$„e& ˆe8‰e
Œe
e, ¡e8Ú[$¢e& ¦e8Û,§e ­e, ¯e8˜,°e& µe8ï$¶e% ºe
Ée*Ûe Þe ×ÙÞ8$èe, íe8,îe'óe8é,õe'úe8Íüe'ÿe8,f8
‡f, f8ÁYDŒf •f ¯y
8 £f8ͦf ©f Öf ªf8$«f$ ¯f8þ ±f& ²f ´f8µf, ¹f8,ºf'¿f8é,Áf'Æf8ÍÈf'Ëf8œLÍf(Øf, Ûf8,Üf'áf8é,ãf'èf8Íêf'íf8ý4ïf öf ¥y0+ —j ˜j ®j8è,™j žj ­j8ÎftŸj8,Àj8ñfTÆj Ñj ík, çj èj Úk + k ƒk Šk8þ4„k8 ¤k, §k8Ú[$¨k ¬k ²k ­k8$®k(´k8õ$·k ¼k Äk8 ,¾k
Ûk+ øl ùl m8è,úl ÿl Žm8Îft€m8$¡m8ñfT¦m8
±m, µm8ÁYD¶m ¿m »r, Õm Öm ¨r8ž|ðm ÿm n r+ Ÿn  n ²n8è,¡n ¦n ±n8ÿT§n+ Ðn Ñn Øn8þ4Òn, ön ÷n Œo- øn+ ún ûn o, ün8Î$ýn, o ƒo ‰o, „o8þ$…o
Šo
o8 «o, ®o8Ú[$¯o ³o ¹o ´o8$µo(»o8õ$¾o Ão øq8åo8$èo'ìo, îo8Ú[$ïo óo8¥_$ôoùo7ì üoþo8$p …p8¥_$†pp7ì Žp p Üp8 ,¶p8$Þp ãp Úq8$‰q q8¥_$Žq “q8$•q'™q, q8Ú[$œq  q8¥_$¡q¦q8$©q'­q, ¯q8Ú[$°q ´q8¥_$µq
©r8Îr8Òr8firstÁ,Ör Ür8 $Þr% âr, ôr õr ¶u 8s Žs8$s8”s8ñfT—s ¡s'¢s, ¤s8Ú[$¥s ©s ®s8$ªs °s ¤u8Ês Ís8„},Îs Ôs Ÿt8þ òs ós8ÕLôs ýs ƒt7 | Á,þs- „t% …t8„},¹t ¿t8 ,Át% Æt8þ àt át8ÕLât ët Œu, ìt8,ít'òt8é,ôt'ùt8µLût „u …u u, †u8Ú[$‡u- u% Žu
·u8Éu8
extra_bitsÁTÍu Øu8$Úu Þu8¥_$ßu äu æu8$çu'ëu8àíu ðu ñu òu8¥_$óu ÷u øu% ùu8v8ë€TŽv™v7ì œv žv ¦x8´v ·v8„},¸v ¾v w8þ Øv Ùv8ÕLÚv ãv év7ˆ,äv- êv% ëv8„},—w w8 ,Ÿw% ¤w8þ ºw »w8ÕL¼w Åw Êw70xÁ$Æw- Ëw% Ìw, âw8,ãw'èw8é,êw'ïw8Íñw'ôw8LowerHexÁDöw'þw8Í€x ƒx ’x „x8ë€T…x$ x8þ x- “x% ”x8¸x8„},»x Áx €y8þ ×x Øx8ÕLÙx âx ìx7(empty)ÁLãx- íx% îx8Òy ”y —y •y y8$¹y, ¾y8,¿y'Äy8é,Æy'Ëy8ÍÍy'Ðy8BinaryÁ4Òy8
Ùy, Ýy8ÁYDÞy çy Ÿ{
8 õy8Íøy ûy ¨z üy8$ýy$ z8þ ƒz& „z †z8‡z, z8,Œz'z8é,“z'˜z8Íšz'z8œLŸz(ªz, ­z8,®z'³z8é,µz'ºz8ͼz'¿z8ý4Áz Èz •{ , Úz8,Ûz'àz8é,âz'çz8Íéz'ìz8…‡4îz'ôz8Íöz ùz ‡{ úz8$ûz ÿz8¥_$€{$ „{8þ †{8$©{, ®{8,¯{'´{8é,¶{'»{8ͽ{'À{8OctalÁ,Â{8
È{, Ì{8ÁYDÍ{ Ö{ }
8 ä{8Íç{ ê{ —| ë{8$ì{$ ð{8þ ò{& ó{ õ{8ö{, ú{8,û{'€|8é,|'‡|8͉|'Œ|8œLŽ|(™|, œ|8,|'¢|8é,¤|'©|8Í«|'®|8ý4°| ·| ƒ} , É|8,Ê|'Ï|8é,Ñ|'Ö|8ÍØ|'Û|8 ,Ý|'â|8Íä| ç| õ| è|8$é| í|8¥_$î|$ ò|8þ ô|8$—}, œ}8,}'¢}8é,¤}'©}8Í«}'®}8È„D°}8
¹}, ½}8ÁYD¾} Ç} 
8 Õ}8ÍØ} Û} ˆ~ Ü}8$Ý}$ á}8þ ã}& ä} æ}8ç}, ë}8,ì}'ñ}8é,ó}'ø}8Íú}'ý}8œLÿ}(Š~, ~8,Ž~'“~8é,•~'š~8Íœ~'Ÿ~8ý4¡~ ¨~ ÷~ , º~8,»~'À~8é,Â~'Ç~8ÍÉ~'Ì~8È„DÎ~'Ö~8ÍØ~ Û~ é~ Ü~8$Ý~ á~8¥_$â~$ æ~8þ è~8$, 8,'8é,˜'8ÍŸ'¢8UpperHexÁ8
­, ±8ÁY » õ€
8 É8ÍÌ Ï ü Ð8$ Õ8þ ×& Ø Ú8Û, ß8'å8é'ì8Íî'ñ8œ(þ, 8,‚€'‡€8é,‰€'Ž€8Í'“€8ý4•€ œ€ ë€ , ®€8,¯€'´€8é,¶€'»€8ͽ€'À€8ГD€'Ê€8ÍÌ€ Ï€ Ý€ Ѐ8$Ñ€ Õ€8¥_$Ö€$ Ú€8þ Ü€+   8è,‚  8á8, ¡8ÁY « Á , ¹ º ®‚
, Ì Í à+ Î Ï ß, Ð8Î, Ö × Ý, Ø8þ
Þ
á8ó8, ý8Ú[& ‚‚8$„‚ ‰‚8$‹‚  Ÿ‚8¥_$’‚& –‚, ˜‚8˜,™‚%  ‚
¯‚< Returns an empty set of flags.Áü¾‚"+ í‚ î‚ õ‚8þ4ï‚8ƒƒ8,‡ƒ8 ƒ8emptyÁ,ƒ •ƒ –ƒ(˜ƒ8$›ƒ  ƒ σ8$²ƒ ·ƒ Áƒ8¥_$¹ƒ& ½ƒ7ì ¿ƒ<& Returns the set containing all flags.ÁüÞƒ)+ ”„ •„ œ„8þ4–„8ª„8,®„8 ´„8à·„ º„ »„(½„8$À„ Å„ Û†8œ×„ ê„ ì„ ͆, ‚…8ÁYDƒ…& ‹…, 8 Ž…  »†, ª… «… ¤† , É… Ê… Ý…+ Ë… Ì… Ü…, Í…8Î$Î…, Ó… Ô… Ú…, Õ…8þ$Ö…
Û…
Þ…, ü…8Ú[$ý… ‚†, „†8˜,…†% І
¥†<5 Returns the raw value of the flags currently store
8¥_$¦Š «Š ­Š8$®Š'²Š8à´Š ·Š ¸Š ¹Š8¥_$ºŠ ¾Š ¿ŠŠ7ì ÅŠ ÇŠ  ‹ , ÝŠ8,ÞŠ'ãŠ8é,åŠ'êŠ8ä 4ìŠ'òŠ8Ó4ôŠ'úŠ8$üŠ €‹ Ž‹8$ †‹ 8¥_$ˆ‹8$¢‹ §‹ ñ‹
, ½‹8,¾‹'Ë8é,Å‹'Ê‹8ä 4Ì‹'Ò‹8Ó4Ô‹'Ú‹8Ð$Ü‹<> Convert from underlying bit representation, dropping any bitsÁüŽŒA<! that do not correspond to flags.ÁüÜŒ$+  Ž 8þ48£88 ­8from_bits_truncateÁ”°  Ë8¥_& Ç, É8 Ê(Í8 Õ šŽ8 ì ŒŽ
8¥_& ò8¥_ ù8'ÿ8àŽ „Ž …Ž †Ž8¥_$‡Ž<; Convert from underlying bit representation, preserving allÁü©Ž><7 bits (even those not corresponding to a defined flag).ÁüôŽ:<Ë»< # SafetyÁdË<Ëä<: The caller of the `bitflags!` macro can chose to allow orÁüô=<- disallow extra bits for their bitflags type.Áü¾0<Ëû<9 The caller of `from_bits_unchecked()` has to ensure thatÁü‹‘<<9 all bits correspond to a defined flag or that extra bitsÁüÔ‘<<" are valid for this bitflags type.Áü%+ Ï’ Ð’ ×’8þ4Ñ’8å’8,é’8"4ï’8 ö’8from_bits_uncheckedÁœù’ Œ“ •“8¥_$& ‘“, ““8 ”“(—“8$š“ Ÿ“ Ë“8$±“ ¶“ ½“8¥_$¸“<1 Returns `true` if no flags are currently stored.ÁüÚ“4+ ›” œ” £”8þ48±”8,µ”8 »”8is_emptyÁD¾” Æ” Ì” Ç”8$È”(Δ8õ$Ñ” Ö” ˜• 8$è” ì”8¥_$í” ñ” ò”ô”8$÷”'û”8Í›,ý” ‚• ƒ• „•8¥_$…• ‰• Š•</ Returns `true` if all flags are currently set.Áü§•2+ æ• ç• î•8þ4è•8ü•8,€–8 †–8is_allÁ4‰–  •– 8$‘–(—–8õ$š– Ÿ– ç–8$±–'µ–8à·– º– »– ¼–8¥_$½– –8$Ä– È–8¥_$É–Ζ8$Ñ– Õ–8¥_$Ö–<E Returns `true` if there are flags common to both `self` and `other`.Áüö–H+ Ë— Ì— Ó—8þ4Í—8á—8,å—8 ë—8
intersectsÁTî— ø— ‹˜ ù—8$ú—$ þ—8î ,€˜& …˜8$‡˜(˜8õ$˜ •˜ æ˜ §˜ ¨˜ ͘8$©˜ ®˜ ̘ 8¥_$°˜& ´˜8$¶˜ º˜8¥_$»˜ À˜8î ,˜ ǘ8¥_$Ș Θ8γDϘ ט ؘ<K Returns `true` if all of the flags in `other` are contained within `self`.Áüõ˜N+ Й Ñ™ Ø™8þ4Ò™8æ™8,ê™8 ð™8containsÁDó™ û™ Žš ü™8$ý™$ š8î ,ƒš& ˆš8$Šš(š8õ$“š ˜š Ýš ªš Áš8$«š ¯š8¥_$°š µš8î ,·š ¼š8¥_$½šÚ8î ,Æš Ëš8¥_$Ìš<& Inserts the specified flags in-place.Áüìš)+ ¢› £› ª›8þ4¤›8¸›8 ¼›8insertÁ4¿› Å› Ü› Æ›8Ç›8$Ë›$ Ï›8î ,Ñ›& Ö›8$Ø› Þ› •œ8$ð› ô›8¥_$õ›ú›8î ,ý› ‚œ8¥_$ƒœ% ‡œ<& Removes the specified flags in-place.Áü¤œ)+ Úœ Ûœ âœ8þ4Üœ8ðœ8 ôœ8removeÁ4÷œ ýœ  þœ8ÿœ8$ 8î ,‰& Ž8$  Î 8 ¬8¥_² µ8î  »8¥_% À<& Toggles the specified flags in-place.ÁüÝ)+ “ž ”ž ›ž8þ4•ž8©ž8 ­ž8toggleÁ4°ž ¶ž Íž ·ž8¸ž8$¼ž$ Àž8î ,ž& Çž8$Éž Ïž †Ÿ8$áž åž8¥_$æžëž8î ,îž óž8¥_$ôž% øž<F Inserts or removes the specified flags depending on the passed value.Áü•ŸI+ ëŸ ìŸ óŸ8þ4íŸ8 8 … 8setÁˆ  ‹  ¯   Œ 8 8$ $ • 8î ,— & œ 8$ž $ ¢ 8˜,¤ & © 8õ$«  ±  Õ¡8à8˜,Æ  Ì  †¡8$â  æ 8è¿4ç  í  ó 8î ,î % ô 8$ˆ¡ ¡ Ç¡8$£¡ §¡8™Â4¨¡ ®¡ ´¡8î ,¯¡% µ¡<9 Returns the intersection between the flags in `self` andÁüä¡<< `other`.Ád­¢<ËÆ¢<A Specifically, the returned set contains only the flags which areÁüÖ¢D<( present in *both* `self` *and* `other`.Áü§£+<Ëߣ<3 This is equivalent to using the `&` operator (e.g.Áüï£6<) [`ops::BitAnd`]), as in `flags & other`.Áü²¤,<Ëë¤<E [`ops::BitAnd`]: https://doc.rust-lang.org/std/ops/trait.BitAnd.htmlÁüû¤H+ Ð¥ Ñ¥ Ø¥8þ4Ò¥+ æ¥ ç¥ ð¥8÷
Dè¥8þ¥8,‚¦8 ˆ¦8 intersectionÁd‹¦ —¦ ©¦8$˜¦$ œ¦8î ,ž¦& £¦8$¥¦(«¦8$®¦ ³¦ ÷¦8$Ŧ ʦ é¦ 8¥_$̦& Ц8$Ò¦ Ö¦8¥_$צ ܦ8î ,Þ¦ ã¦8¥_$ä¦<> Returns the union of between the flags in `self` and `other`.Áü†§A<ËÔ§<< Specifically, the returned set contains all flags which areÁüä§?<A present in *either* `self` *or* `other`, including any which areÁü°¨D<< present in both (see [`Self::symmetric_difference`] if thatÁü©?< is undesirable).Á¤Í©<Ëî©<3 This is equivalent to using the `|` operator (e.g.Áüþ©6<( [`ops::BitOr`]), as in `flags | other`.ÁüÁª+<Ëùª<C [`ops::BitOr`]: https://doc.rust-lang.org/std/ops/trait.BitOr.htmlÁü‰«F+ Ü« Ý« ä«8þ4Þ«+ ò« ó« ü«8÷
Dô«8Ь8,ެ8 ”¬8C,—¬ œ¬ ®¬8$¬$ ¡¬8î ,£¬& ¨¬8$ª¬(°¬8$³¬ ¸¬ ü¬8$ʬ Ϭ î¬ 8¥_$Ѭ& Õ¬8$׬ Û¬8¥_$ܬ á¬8î ,㬠è¬8¥_$é¬<@ Returns the difference between the flags in `self` and `other`.Áü‹­C<ËÛ­<= Specifically, the returned set contains all flags present inÁüë­@<0 `self`, except for the ones present in `other`.Áü¸®3<Ëø®<A It is also conceptually equivalent to the "bit-clear" operation:Áüˆ¯D<6 `flags & !other` (and this syntax is also supported).ÁüÙ¯9<ËŸ°<3 This is equivalent to using the `-` operator (e.g.Áü¯°6<& [`ops::Sub`]), as in `flags - other`.Áüò°)<˨±<? [`ops::Sub`]: https://doc.rust-lang.org/std/ops/trait.Sub.htmlÁü¸±B+ ‡² ˆ² ²8þ4‰²+ ² ž² §²8÷
DŸ²8µ²8,¹²8 ¿²8
differenceÁT² ̲ Þ²8$Ͳ$ Ѳ8î ,Ó²& ز8$Ú²(à²8$ã² è² ­³8$ú² ÿ² Ÿ³
8¥_$³& …³8$‡³ ‹³8¥_$Œ³ ‘³ “³8î ,”³ ™³8¥_$š³<? Returns the [symmetric difference][sym-diff] between the flagsÁü¼³B< in `self` and `other`.ÁÔ‹´<˲´<@ Specifically, the returned set contains the flags present whichÁü´C<> are present in `self` or `other`, but that are not present inÁü’µA<> both. Equivalently, it contains the flags present in *exactlyÁüàµA<% one* of the sets `self` and `other`.Áü®¶(<Ëã¶<3 This is equivalent to using the `^` operator (e.g.Áüó¶6<) [`ops::BitXor`]), as in `flags ^ other`.Áü¶·,<Ëï·<? [sym-diff]: https://en.wikipedia.org/wiki/Symmetric_differenceÁüÿ·B<E [`ops::BitXor`]: https://doc.rust-lang.org/std/ops/trait.BitXor.htmlÁüθH+ £¹ ¤¹ «¹8þ4¥¹+ ¹¹ º¹ ù8÷
D»¹8ѹ8,Õ¹8 Û¹8symmetric_differenceÁ¤Þ¹ ò¹ „º8$ó¹$ ÷¹8î ,ù¹& þ¹8$€º(†º8$‰º Žº Òº8$ º ¥º ĺ 8¥_$§º& «º8$­º ±º8¥_$²º ·º8î ,¹º ¾º8¥_$¿º<- Returns the complement of this set of flags.Áüáº0<Ëž»<@ Specifically, the returned set contains all the flags which areÁü®»C<8 not set in `self`, but which are allowed for this type.Áüþ»;<ËƼ<: Alternatively, it can be thought of as the set differenceÁüÖ¼=<? between [`Self::all()`] and `self` (e.g. `Self::all() - self`)Áü ½B<Ëï½<3 This is equivalent to using the `!` operator (e.g.Áüÿ½6< [`ops::Not`]), as in `!flags`.Áü¾"<Ëñ¾< [`Self::all()`]: Self::allÁô¿<? [`ops::Not`]: https://doc.rust-lang.org/std/ops/trait.Not.htmlÁü¬¿B+ û¿ ü¿ ƒÀ8þ4ý¿+ ‘À ’À ›À8÷
D“À8©À8,­À8 ³À8
complementÁT¶À ÀÀ ÅÀ8$ÁÀ(ÇÀ8$ÊÀ ÏÀ ’Á8$áÀ'åÀ8ת”çÀ ùÀ „Á úÀ8$ûÀ ÿÀ8¥_$€Á8$¨Á, ­Á8,®Á'³Á8é,µÁ'ºÁ8Þ ¼Á'¿Á8BitOrÁ,ÁÁ8
ÇÁ, ËÁ8ÁYDÌÁ ÕÁ ÍÃ8!$ãÁ8Ø4èÁ ïÁ8$ñÁ% õÁ<, Returns the union of the two sets of flags.Áü„Â/+ À Á ÈÂ8þ4ÂÂ8 ÖÂ8í,Ù Þ õÂ8$ßÂ$ ãÂ8î ,åÂ& êÂ, ìÂ8ÁYDíÂ(÷Â8$ú ÿ ÃÃ8$‘à –à µÃ 8¥_$˜Ã& œÃ8$žÃ ¢Ã8¥_$£Ã ¨Ã8î ,ªÃ ¯Ã8¥_$°Ã8$ØÃ, ÝÃ8,ÞÃ'ãÃ8é,åÃ'êÃ8Þ ìÃ'ïÃ8 BitOrAssignÁ\ñÃ8
ýÃ, Ä8ÁYD‚Ä ‹Ä ¿Å< Adds the set of flags.ÁÔ™Ä+ ÀÄ ÁÄ ÈÄ8þ4ÂÄ8 ÖÄ8îdÙÄ åÄ üÄ æÄ8çÄ8$ëÄ$ ïÄ8î ,ñÄ& öÄ8$øÄ þÄ µÅ8$Å ”Å8¥_$•ÅšÅ8î ,Å ¢Å8¥_$£Å% §Å8$ÊÅ, ÏÅ8,ÐÅ'ÕÅ8é,×Å'ÜÅ8Þ ÞÅ'áÅ8BitXorÁ4ãÅ8
êÅ, îÅ8ÁYDïÅ øÅ þÇ8!$†Æ8Ø4‹Æ ’Æ8$”Æ% ˜Æ<> Returns the left flags, but with all the right flags toggled.Áü§ÆA+ õÆ öÆ ýÆ8þ4÷Æ8 ‹Ç8ð4ŽÇ ”Ç ¦Ç8$•Ç$ ™Ç8î ,›Ç&  Ç8$¢Ç(¨Ç8$«Ç °Ç ôÇ8$ÂÇ ÇÇ æÇ 8¥_$ÉÇ& ÍÇ8$ÏÇ ÓÇ8¥_$ÔÇ ÙÇ8î ,ÛÇ àÇ8¥_$áÇ8$‰È, ŽÈ8,È'”È8é,–È'›È8Þ È' È8 BitXorAssignÁd¢È8
¯È, ³È8ÁYD´È ½È õÉ< Toggles the set of flags.ÁìËÈ+ õÈ öÈ ýÈ8þ4÷È8 ‹É8ñlŽÉ ›É ²É œÉ8É8$¡É$ ¥É8î ,§É& ¬É8$®É ´É ëÉ8$ÆÉ ÊÉ8¥_$ËÉÐÉ8î ,ÓÉ ØÉ8¥_$ÙÉ% ÝÉ8$€Ê, …Ê8,†Ê'‹Ê8é,Ê'’Ê8Þ ”Ê'—Ê8BitAndÁ4™Ê8
 Ê, ¤Ê8ÁYD¥Ê ®Ê ®Ì8!$¼Ê8Ø4ÁÊ ÈÊ8$ÊÊ% ÎÊ<8 Returns the intersection between the two sets of flags.ÁüÝÊ;+ ¥Ë ¦Ë ­Ë8þ4§Ë8 »Ë8ë4¾Ë ÄË ÖË8$ÅË$ ÉË8î ,ËË& ÐË8$ÒË(ØË8$ÛË àË ¤Ì8$òË ÷Ë –Ì 8¥_$ùË& ýË8$ÿË ƒÌ8¥_$„Ì ‰Ì8î ,‹Ì Ì8¥_$‘Ì8$¹Ì, ¾Ì8,¿Ì'ÄÌ8é,ÆÌ'ËÌ8Þ ÍÌ'ÐÌ8 BitAndAssignÁdÒÌ8
ßÌ, ãÌ8ÁYDäÌ íÌ ³Î<( Disables all flags disabled in the set.ÁüûÌ++ ³Í ´Í »Í8þ4µÍ8 ÉÍ8ìlÌÍ ÙÍ ðÍ ÚÍ8ÛÍ8$ßÍ$ ãÍ8î ,åÍ& êÍ8$ìÍ òÍ ©Î8$„Î ˆÎ8¥_$‰ÎŽÎ8î ,‘Î –Î8¥_$—Î% ›Î8$¾Î, ÃÎ8,ÄÎ'ÉÎ8é,ËÎ'ÐÎ8Þ ÒÎ'ÕÎ8SubÁ×Î8
ÛÎ, ßÎ8ÁYDàÎ éÎ äÐ8!$÷Î8Ø4üÎ ƒÏ8$…Ï% ‰Ï<5 Returns the set difference of the two sets of flags.Áü˜Ï8+ ÝÏ ÞÏ åÏ8þ4ßÏ8 óÏ8»öÏ ùÏ ‹Ð8$úÏ$ þÏ8î ,€Ð& …Ð8$‡Ð(Ð8$Ð •Ð ÚÐ8$§Ð ¬Ð ÌÐ
8¥_$®Ð& ²Ð8$´Ð ¸Ð8¥_$¹Ð ¾Ð ÀÐ8î ,ÁÐ ÆÐ8¥_$ÇÐ8$ïÐ, ôÐ8,õÐ'úÐ8é,üÐ'Ñ8Þ ƒÑ'†Ñ8 SubAssignÁLˆÑ8
’Ñ, –Ñ8ÁYD—Ñ  Ñ ãÒ<' Disables all flags enabled in the set.Áü®Ñ*+ åÑ æÑ íÑ8þ4çÑ8 ûÑ8¼TþÑ ˆÒ ŸÒ ‰Ò8ŠÒ8$ŽÒ$ ’Ò8î ,”Ò& ™Ò8$›Ò ¡Ò ÙÒ 8$³Ò ·Ò8¥_$¸Ò½Ò ÀÒ8î ,ÁÒ ÆÒ8¥_$ÇÒ% ËÒ8$îÒ, óÒ8,ôÒ'ùÒ8é,ûÒ'€Ó8Þ ‚Ó'…Ó8NotÁ‡Ó8
‹Ó, Ó8ÁYDÓ ™Ó €Õ8!$§Ó8Ø4¬Ó ³Ó8$µÓ% ¹Ó<›çüÈÓ0+ …Ô †Ô Ô8þ4‡Ô8 ›Ô8Æ žÔ ¡Ô ¦Ô8$¢Ô(¨Ô8$«Ô °Ô öÔ8$ÂÔ ÇÔ ÚÔ8¥_$ÉÔ& ÍÔ ÏÔ8$ÐÔ ÔÔ8¥_$ÕÔ ÜÔ8$ÞÔ'âÔ8àäÔ çÔ èÔ8$‹Õ, Õ8,‘Õ'–Õ8é,˜Õ'Õ8£ $ŸÕ'£Õ8ExtendÁ4¥Õ «Õ, ¬Õ8ÁYD­Õ µÕ8
·Õ, »Õ8ÁYD¼Õ ÅÕ ×8 ÓÕ8extendÁ4ÖÕ ÜÕ8 ÝÕ& ÞÕ, àÕ8,áÕ'æÕ8é,èÕ'íÕ8£ $ïÕ'óÕ8²dõÕ Ö8½$‚Ö †Ö8$‡Ö‹Ö Ö ¤Ö ŽÖ8Ö8$“Ö$ —Ö8© D™Ö& ¡Ö8 £Ö ¦Ö “×8
¸Ö8¡ $¼Ö8ÁÖ8© DÄÖ ÍÖ …×8$ãÖ çÖ8è¿4èÖ îÖ óÖ8¡ $ïÖ8$¨×, ­×8,®×'³×8é,µ×'º×8£ $¼×'À×8ŸdÂ× Î×, Ï×8ÁYDÐ× Ø×8
Ú×, Þ×8ÁYDß× è× ÑÙ8 ö×8òLù× ‚Ø8 ƒØ& „Ø, †Ø8,‡Ø'ŒØ8é,ŽØ'“Ø8£ $•Ø'™Ø8²d›Ø §Ø8½$¨Ø ¬Ø8$­Ø±Ø ³Ø ¿Ø8© D´Ø& ¼Ø8 ¾Ø(ÁØ8$ÄØ ÉØ ÇÙ8ÛØ8ߨ8Û