Glib::Flags(3)

πŸ’… Glib::Flags πŸ’…

okay so bestie, this is the Glib::Flags page from the User Contributed Perl Documentation, and it's literally about methods and overloaded operators for flags. iconic behavior only ✨


✨ NAME ✨

Glib::Flags β€” methods and overloaded operators for flags πŸŽ€


🌈 HIERARCHY 🌈

  Glib::Flags

πŸ’– DESCRIPTION πŸ’–

Glib maps flag and enum values to the nicknames strings provided by the underlying C libraries. Representing flags this way in Perl is an interesting problem, which Glib solves by using some cool overloaded operators. no cap, that's the whole vibe πŸ’…

The functions described here actually do the work of those overloaded operators. See the description of the flags operators in the "This Is Now That" section of Glib for more info. yes bestie, that's the exact section name, go look πŸ‘€


πŸŽ€ METHODS πŸŽ€

scalar = $class->new ($a)

  • $a (scalar)

Create a new flags object with given bits. This is for use from a subclass, it's not possible to create a "Glib::Flags" object as such. For example,

my $f1 = Glib::ParamFlags->new ('readable');
my $f2 = Glib::ParamFlags->new (['readable','writable']);

An object like this can then be used with the overloaded operators. periodt πŸ’œ

scalar = $a->all ($b, $swap)

  • $b (scalar)
  • $swap (scalar)

aref = $f->as_arrayref

Return the bits of $f as a reference to an array of strings, like ['flagbit1','flagbit2']. This is the overload function for "@{}", ie. arrayizing $f. You can call it directly as a method too. 🫢

Note that @$f gives the bits as a list, but as_arrayref gives an arrayref. If an arrayref is what you want then the method style somefunc()->as_arrayref can be more readable than [@{somefunc()}]. lowkey a glow-up in readability πŸ’…

bool = $f->bool

Return 1 if any bits are set in $f, or 0 if none are set. This is the overload for $f in boolean context (like "if", etc). You can call it as a method to get a true/false directly too. πŸ¦‹

integer = $a->eq ($b, $swap)

  • $b (scalar)
  • $swap (integer)

integer = $a->ge ($b, $swap)

  • $b (scalar)
  • $swap (integer)

scalar = $a->intersect ($b, $swap)

  • $b (scalar)
  • $swap (scalar)

integer = $a->ne ($b, $swap)

  • $b (scalar)
  • $swap (integer)

scalar = $a->sub ($b, $swap)

  • $b (scalar)
  • $swap (scalar)

scalar = $a->union ($b, $swap)

  • $b (scalar)
  • $swap (scalar)

scalar = $a->xor ($b, $swap)

  • $b (scalar)
  • $swap (scalar)

πŸ¦‹ SEE ALSO πŸ¦‹

Glib β€” that's the one, bestie πŸ’–


Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL. See Glib for a full notice.


mwah πŸ’‹ cute little footer sign-off: this page is rockin' perl v5.42.0, dated 2023-09-05, and it's giving User Contributed Perl Documentation energy from start to finish 🌸

πŸ“¦ where this page comes from