From 67fa9bee6cc63fb03de1f6c8bf87a108bd0cd4d7 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sat, 15 Jul 2017 02:24:50 +0200 Subject: [PATCH] Update --- pnmixerlib/errors/index.html | 2 +- pnmixerlib/index.html | 51 ++++++++++++++++++++++-------- pnmixerlib/macro.try_e.html | 8 +++-- pnmixerlib/macro.try_r.html | 6 ++-- pnmixerlib/macro.try_w.html | 6 ++-- pnmixerlib/macro.try_wr.html | 6 ++-- pnmixerlib/sidebar-items.js | 2 +- search-index.js | 2 +- src/pnmixerlib/errors.rs.html | 36 +++++++--------------- src/pnmixerlib/lib.rs.html | 58 +++++++++++++++++++++++++++++++++++ 10 files changed, 127 insertions(+), 50 deletions(-) diff --git a/pnmixerlib/errors/index.html b/pnmixerlib/errors/index.html index 7dda2c96e..563d64a45 100644 --- a/pnmixerlib/errors/index.html +++ b/pnmixerlib/errors/index.html @@ -48,7 +48,7 @@ [] - [src] + [src]

Structs

diff --git a/pnmixerlib/index.html b/pnmixerlib/index.html index 3efaca396..509b6d0c4 100644 --- a/pnmixerlib/index.html +++ b/pnmixerlib/index.html @@ -48,8 +48,36 @@ [] - [src] -

Reexports

+ [src] +

PNMixer-rs is a mixer for the system tray.

+ +

Design Overview

+

The lowest level part of the code is the sound backend. Only Alsa is supported +at the moment, but more backends may be added in the future.

+ +

The backend is hidden behind a frontend, defined in audio.rs. Only audio.rs +deals with audio backends. This means that the whole of the code is blissfully +ignorant of the audio backend in use.

+ +

audio.rs is also in charge of emitting signals whenever a change happens. +This means that PNMixer-rs design is quite signal-oriented, so to say.

+ +

The ui code is nothing fancy. Each ui element...

+ + + +

There's something you should keep in mind. Audio on a computer is a shared +resource. PNMixer-rs isn't the only one that can change it. At any moment the +audio volume may be modified by someone else, and we must update the ui +accordingly. So listening to changes from the audio subsystem (and therefore +having a signal-oriented design) is the most obvious solution to solve that +problem.

+

Reexports

pub extern crate flexi_logger;
pub extern crate log;
pub extern crate error_chain;
pub extern crate serde_derive;
pub extern crate toml;
pub extern crate serde;
pub extern crate alsa;
pub extern crate alsa_sys;
pub extern crate ffi;
pub extern crate gdk;
pub extern crate gdk_pixbuf;
pub extern crate gdk_pixbuf_sys;
pub extern crate gdk_sys;
pub extern crate gio;
pub extern crate glib;
pub extern crate glib_sys;
pub extern crate gobject_sys;
pub extern crate gtk;
pub extern crate gtk_sys;
pub extern crate libc;
pub extern crate png;
pub extern crate which;
pub extern crate xdg;

Modules

@@ -178,35 +206,32 @@ in the binary and decodes it.

- - - -
try_e - -
try_er - +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise print an error and exit the program.

try_r - +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise return from the function with the given value.

try_w - +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise print a warning and return () from the function.

try_wr - +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise print a warning and return from the function with the given value.

diff --git a/pnmixerlib/macro.try_e.html b/pnmixerlib/macro.try_e.html index 32c708f49..8660ec7c3 100644 --- a/pnmixerlib/macro.try_e.html +++ b/pnmixerlib/macro.try_e.html @@ -48,14 +48,16 @@ [] - [src] + [src]
 macro_rules! try_e {
     ($expr:expr) => { ... };
-    ($expr:expr, $fmt:expr, $($arg:tt)+) => { ... };
     ($expr:expr, $fmt:expr) => { ... };
+    ($expr:expr, $fmt:expr, $($arg:tt)+) => { ... };
 }
- +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise print an error and exit the program.

+
diff --git a/pnmixerlib/macro.try_r.html b/pnmixerlib/macro.try_r.html index ea5a85d54..b04f18e18 100644 --- a/pnmixerlib/macro.try_r.html +++ b/pnmixerlib/macro.try_r.html @@ -48,12 +48,14 @@ [] - [src] + [src]
 macro_rules! try_r {
     ($expr:expr, $ret:expr) => { ... };
 }
- +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise return from the function with the given value.

+
diff --git a/pnmixerlib/macro.try_w.html b/pnmixerlib/macro.try_w.html index c50a3793f..c9ee1a434 100644 --- a/pnmixerlib/macro.try_w.html +++ b/pnmixerlib/macro.try_w.html @@ -48,14 +48,16 @@ [] - [src] + [src]
 macro_rules! try_w {
     ($expr:expr) => { ... };
     ($expr:expr, $fmt:expr, $($arg:tt)+) => { ... };
     ($expr:expr, $fmt:expr) => { ... };
 }
- +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise print a warning and return () from the function.

+
diff --git a/pnmixerlib/macro.try_wr.html b/pnmixerlib/macro.try_wr.html index 7e6a05631..b175535e5 100644 --- a/pnmixerlib/macro.try_wr.html +++ b/pnmixerlib/macro.try_wr.html @@ -48,14 +48,16 @@ [] - [src] + [src]
 macro_rules! try_wr {
     ($expr:expr, $ret:expr) => { ... };
     ($expr:expr, $ret:expr, $fmt:expr) => { ... };
     ($expr:expr, $ret:expr, $fmt:expr, $($arg:tt)+) => { ... };
 }
- +

Try to unwrap a Result<T, E>. If there is a value T, yield it, +otherwise print a warning and return from the function with the given value.

+
diff --git a/pnmixerlib/sidebar-items.js b/pnmixerlib/sidebar-items.js index c97ef9cb3..cfab16c35 100644 --- a/pnmixerlib/sidebar-items.js +++ b/pnmixerlib/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"macro":[["create_builder_item",""],["pixbuf_new_from_png","Create a pixbuf from the given PNG file. Includes the file as bytes in the binary and decodes it."],["try_e",""],["try_er",""],["try_r",""],["try_w",""],["try_wr",""]],"mod":[["alsa_card","Alsa audio subsystem."],["app_state","Global application state."],["audio","High-level audio subsystem."],["errors",""],["glade_helpers",""],["prefs","The preferences subsystem."],["support_alsa","Alsa audio helper functions."],["support_audio","Helper functions of the audio subsystem."],["support_cmd","Helper functions for invoking system commands."],["support_ui","Helper functions for the UI, mostly pixbuf functions."],["ui_entry","Global GUI state."],["ui_popup_menu","The popup menu subsystem when the user right-clicks on the tray icon."],["ui_popup_window","The popup window subsystem when the user left-clicks on the tray icon."],["ui_prefs_dialog","The preferences window subsystem, when the user clicks the \"Preferences\" menu item on the popup menu."],["ui_tray_icon","The tray icon subsystem."]]}); \ No newline at end of file +initSidebarItems({"macro":[["create_builder_item",""],["pixbuf_new_from_png","Create a pixbuf from the given PNG file. Includes the file as bytes in the binary and decodes it."],["try_e","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise print an error and exit the program."],["try_r","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise return from the function with the given value."],["try_w","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise print a warning and `return ()` from the function."],["try_wr","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise print a warning and return from the function with the given value."]],"mod":[["alsa_card","Alsa audio subsystem."],["app_state","Global application state."],["audio","High-level audio subsystem."],["errors",""],["glade_helpers",""],["prefs","The preferences subsystem."],["support_alsa","Alsa audio helper functions."],["support_audio","Helper functions of the audio subsystem."],["support_cmd","Helper functions for invoking system commands."],["support_ui","Helper functions for the UI, mostly pixbuf functions."],["ui_entry","Global GUI state."],["ui_popup_menu","The popup menu subsystem when the user right-clicks on the tray icon."],["ui_popup_window","The popup window subsystem when the user left-clicks on the tray icon."],["ui_prefs_dialog","The preferences window subsystem, when the user clicks the \"Preferences\" menu item on the popup menu."],["ui_tray_icon","The tray icon subsystem."]]}); \ No newline at end of file diff --git a/search-index.js b/search-index.js index 52124ac55..38a8d3162 100644 --- a/search-index.js +++ b/search-index.js @@ -42,7 +42,7 @@ searchIndex["num_traits"] = {"doc":"Numeric traits for generic mathematics","ite searchIndex["pango"] = {"doc":"","items":[[3,"Error","pango","A generic error capable of representing various error domains (types).",null,null],[17,"SCALE","","",null,null],[3,"Context","","",null,null],[3,"EngineShape","","",null,null],[3,"Font","","",null,null],[3,"FontFace","","",null,null],[3,"FontFamily","","",null,null],[3,"FontMap","","",null,null],[3,"Fontset","","",null,null],[3,"Layout","","",null,null],[3,"Renderer","","",null,null],[3,"AttrList","","",null,null],[3,"Attribute","","",null,null],[3,"Color","","",null,null],[3,"Coverage","","",null,null],[3,"FontDescription","","",null,null],[3,"FontMetrics","","",null,null],[3,"GlyphItem","","",null,null],[3,"GlyphItemIter","","",null,null],[3,"GlyphString","","",null,null],[3,"LayoutIter","","",null,null],[3,"LayoutLine","","",null,null],[3,"Matrix","","",null,null],[3,"TabArray","","",null,null],[3,"FontMask","","",null,null],[4,"Alignment","","",null,null],[13,"Left","","",0,null],[13,"Center","","",0,null],[13,"Right","","",0,null],[4,"AttrType","","",null,null],[13,"Invalid","","",1,null],[13,"Language","","",1,null],[13,"Family","","",1,null],[13,"Style","","",1,null],[13,"Weight","","",1,null],[13,"Variant","","",1,null],[13,"Stretch","","",1,null],[13,"Size","","",1,null],[13,"FontDesc","","",1,null],[13,"Foreground","","",1,null],[13,"Background","","",1,null],[13,"Underline","","",1,null],[13,"Strikethrough","","",1,null],[13,"Rise","","",1,null],[13,"Shape","","",1,null],[13,"Scale","","",1,null],[13,"Fallback","","",1,null],[13,"LetterSpacing","","",1,null],[13,"UnderlineColor","","",1,null],[13,"StrikethroughColor","","",1,null],[13,"AbsoluteSize","","",1,null],[13,"Gravity","","",1,null],[13,"GravityHint","","",1,null],[13,"FontFeatures","","",1,null],[13,"ForegroundAlpha","","",1,null],[13,"BackgroundAlpha","","",1,null],[4,"BidiType","","",null,null],[13,"L","","",2,null],[13,"Lre","","",2,null],[13,"Lro","","",2,null],[13,"R","","",2,null],[13,"Al","","",2,null],[13,"Rle","","",2,null],[13,"Rlo","","",2,null],[13,"Pdf","","",2,null],[13,"En","","",2,null],[13,"Es","","",2,null],[13,"Et","","",2,null],[13,"An","","",2,null],[13,"Cs","","",2,null],[13,"Nsm","","",2,null],[13,"Bn","","",2,null],[13,"B","","",2,null],[13,"S","","",2,null],[13,"Ws","","",2,null],[13,"On","","",2,null],[4,"CoverageLevel","","",null,null],[13,"None","","",3,null],[13,"Fallback","","",3,null],[13,"Approximate","","",3,null],[13,"Exact","","",3,null],[4,"Direction","","",null,null],[13,"Ltr","","",4,null],[13,"Rtl","","",4,null],[13,"TtbLtr","","",4,null],[13,"TtbRtl","","",4,null],[13,"WeakLtr","","",4,null],[13,"WeakRtl","","",4,null],[13,"Neutral","","",4,null],[4,"EllipsizeMode","","",null,null],[13,"None","","",5,null],[13,"Start","","",5,null],[13,"Middle","","",5,null],[13,"End","","",5,null],[4,"Gravity","","",null,null],[13,"South","","",6,null],[13,"East","","",6,null],[13,"North","","",6,null],[13,"West","","",6,null],[13,"Auto","","",6,null],[4,"GravityHint","","",null,null],[13,"Natural","","",7,null],[13,"Strong","","",7,null],[13,"Line","","",7,null],[4,"RenderPart","","",null,null],[13,"Foreground","","",8,null],[13,"Background","","",8,null],[13,"Underline","","",8,null],[13,"Strikethrough","","",8,null],[4,"Script","","",null,null],[13,"InvalidCode","","",9,null],[13,"Common","","",9,null],[13,"Inherited","","",9,null],[13,"Arabic","","",9,null],[13,"Armenian","","",9,null],[13,"Bengali","","",9,null],[13,"Bopomofo","","",9,null],[13,"Cherokee","","",9,null],[13,"Coptic","","",9,null],[13,"Cyrillic","","",9,null],[13,"Deseret","","",9,null],[13,"Devanagari","","",9,null],[13,"Ethiopic","","",9,null],[13,"Georgian","","",9,null],[13,"Gothic","","",9,null],[13,"Greek","","",9,null],[13,"Gujarati","","",9,null],[13,"Gurmukhi","","",9,null],[13,"Han","","",9,null],[13,"Hangul","","",9,null],[13,"Hebrew","","",9,null],[13,"Hiragana","","",9,null],[13,"Kannada","","",9,null],[13,"Katakana","","",9,null],[13,"Khmer","","",9,null],[13,"Lao","","",9,null],[13,"Latin","","",9,null],[13,"Malayalam","","",9,null],[13,"Mongolian","","",9,null],[13,"Myanmar","","",9,null],[13,"Ogham","","",9,null],[13,"OldItalic","","",9,null],[13,"Oriya","","",9,null],[13,"Runic","","",9,null],[13,"Sinhala","","",9,null],[13,"Syriac","","",9,null],[13,"Tamil","","",9,null],[13,"Telugu","","",9,null],[13,"Thaana","","",9,null],[13,"Thai","","",9,null],[13,"Tibetan","","",9,null],[13,"CanadianAboriginal","","",9,null],[13,"Yi","","",9,null],[13,"Tagalog","","",9,null],[13,"Hanunoo","","",9,null],[13,"Buhid","","",9,null],[13,"Tagbanwa","","",9,null],[13,"Braille","","",9,null],[13,"Cypriot","","",9,null],[13,"Limbu","","",9,null],[13,"Osmanya","","",9,null],[13,"Shavian","","",9,null],[13,"LinearB","","",9,null],[13,"TaiLe","","",9,null],[13,"Ugaritic","","",9,null],[13,"NewTaiLue","","",9,null],[13,"Buginese","","",9,null],[13,"Glagolitic","","",9,null],[13,"Tifinagh","","",9,null],[13,"SylotiNagri","","",9,null],[13,"OldPersian","","",9,null],[13,"Kharoshthi","","",9,null],[13,"Unknown","","",9,null],[13,"Balinese","","",9,null],[13,"Cuneiform","","",9,null],[13,"Phoenician","","",9,null],[13,"PhagsPa","","",9,null],[13,"Nko","","",9,null],[13,"KayahLi","","",9,null],[13,"Lepcha","","",9,null],[13,"Rejang","","",9,null],[13,"Sundanese","","",9,null],[13,"Saurashtra","","",9,null],[13,"Cham","","",9,null],[13,"OlChiki","","",9,null],[13,"Vai","","",9,null],[13,"Carian","","",9,null],[13,"Lycian","","",9,null],[13,"Lydian","","",9,null],[13,"Batak","","",9,null],[13,"Brahmi","","",9,null],[13,"Mandaic","","",9,null],[13,"Chakma","","",9,null],[13,"MeroiticCursive","","",9,null],[13,"MeroiticHieroglyphs","","",9,null],[13,"Miao","","",9,null],[13,"Sharada","","",9,null],[13,"SoraSompeng","","",9,null],[13,"Takri","","",9,null],[13,"BassaVah","","",9,null],[13,"CaucasianAlbanian","","",9,null],[13,"Duployan","","",9,null],[13,"Elbasan","","",9,null],[13,"Grantha","","",9,null],[13,"Khojki","","",9,null],[13,"Khudawadi","","",9,null],[13,"LinearA","","",9,null],[13,"Mahajani","","",9,null],[13,"Manichaean","","",9,null],[13,"MendeKikakui","","",9,null],[13,"Modi","","",9,null],[13,"Mro","","",9,null],[13,"Nabataean","","",9,null],[13,"OldNorthArabian","","",9,null],[13,"OldPermic","","",9,null],[13,"PahawhHmong","","",9,null],[13,"Palmyrene","","",9,null],[13,"PauCinHau","","",9,null],[13,"PsalterPahlavi","","",9,null],[13,"Siddham","","",9,null],[13,"Tirhuta","","",9,null],[13,"WarangCiti","","",9,null],[13,"Ahom","","",9,null],[13,"AnatolianHieroglyphs","","",9,null],[13,"Hatran","","",9,null],[13,"Multani","","",9,null],[13,"OldHungarian","","",9,null],[13,"Signwriting","","",9,null],[4,"Stretch","","",null,null],[13,"UltraCondensed","","",10,null],[13,"ExtraCondensed","","",10,null],[13,"Condensed","","",10,null],[13,"SemiCondensed","","",10,null],[13,"Normal","","",10,null],[13,"SemiExpanded","","",10,null],[13,"Expanded","","",10,null],[13,"ExtraExpanded","","",10,null],[13,"UltraExpanded","","",10,null],[4,"Style","","",null,null],[13,"Normal","","",11,null],[13,"Oblique","","",11,null],[13,"Italic","","",11,null],[4,"TabAlign","","",null,null],[13,"Left","","",12,null],[4,"Underline","","",null,null],[13,"None","","",13,null],[13,"Single","","",13,null],[13,"Double","","",13,null],[13,"Low","","",13,null],[13,"Error","","",13,null],[4,"Variant","","",null,null],[13,"Normal","","",14,null],[13,"SmallCaps","","",14,null],[4,"Weight","","",null,null],[13,"Thin","","",15,null],[13,"Ultralight","","",15,null],[13,"Light","","",15,null],[13,"Semilight","","",15,null],[13,"Book","","",15,null],[13,"Normal","","",15,null],[13,"Medium","","",15,null],[13,"Semibold","","",15,null],[13,"Bold","","",15,null],[13,"Ultrabold","","",15,null],[13,"Heavy","","",15,null],[13,"Ultraheavy","","",15,null],[4,"WrapMode","","",null,null],[13,"Word","","",16,null],[13,"Char","","",16,null],[13,"WordChar","","",16,null],[5,"config_key_get","","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"config_key_get_system","","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"extents_to_pixels","","",null,{"inputs":[{"name":"p"},{"name":"q"}],"output":null}],[5,"find_base_dir","","",null,{"inputs":[{"name":"str"},{"name":"i32"}],"output":{"name":"direction"}}],[5,"find_paragraph_boundary","","",null,null],[5,"get_lib_subdirectory","","",null,{"inputs":[],"output":{"name":"option"}}],[5,"get_sysconf_subdirectory","","",null,{"inputs":[],"output":{"name":"option"}}],[5,"is_zero_width","","",null,{"inputs":[{"name":"char"}],"output":{"name":"bool"}}],[5,"parse_enum","","",null,{"inputs":[{"name":"type"},{"name":"p"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_markup","","",null,{"inputs":[{"name":"str"},{"name":"i32"},{"name":"char"}],"output":{"name":"result"}}],[5,"parse_stretch","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_style","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_variant","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_weight","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"quantize_line_geometry","","",null,{"inputs":[{"name":"i32"},{"name":"i32"}],"output":null}],[5,"split_file_list","","",null,{"inputs":[{"name":"str"}],"output":{"name":"vec"}}],[5,"trim_string","","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"unichar_direction","","",null,{"inputs":[{"name":"char"}],"output":{"name":"direction"}}],[5,"units_from_double","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i32"}}],[5,"units_to_double","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[5,"version","","",null,{"inputs":[],"output":{"name":"i32"}}],[5,"version_check","","",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":{"name":"option"}}],[5,"version_string","","",null,{"inputs":[],"output":{"name":"option"}}],[11,"clone","","",17,{"inputs":[{"name":"self"}],"output":{"name":"context"}}],[11,"fmt","","",17,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",17,null],[11,"static_type","","",17,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",17,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"new","","",17,{"inputs":[],"output":{"name":"context"}}],[11,"clone","","",18,{"inputs":[{"name":"self"}],"output":{"name":"engineshape"}}],[11,"fmt","","",18,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",18,null],[11,"static_type","","",18,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",18,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"clone","","",19,{"inputs":[{"name":"self"}],"output":{"name":"font"}}],[11,"fmt","","",19,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",19,null],[11,"static_type","","",19,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",19,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"clone","","",20,{"inputs":[{"name":"self"}],"output":{"name":"fontface"}}],[11,"fmt","","",20,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",20,null],[11,"static_type","","",20,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",20,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"clone","","",21,{"inputs":[{"name":"self"}],"output":{"name":"fontfamily"}}],[11,"fmt","","",21,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",21,null],[11,"static_type","","",21,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",21,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"clone","","",22,{"inputs":[{"name":"self"}],"output":{"name":"fontmap"}}],[11,"fmt","","",22,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",22,null],[11,"static_type","","",22,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",22,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"clone","","",23,{"inputs":[{"name":"self"}],"output":{"name":"fontset"}}],[11,"fmt","","",23,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",23,null],[11,"static_type","","",23,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",23,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"clone","","",24,{"inputs":[{"name":"self"}],"output":{"name":"layout"}}],[11,"fmt","","",24,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",24,null],[11,"static_type","","",24,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",24,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"new","","",24,{"inputs":[{"name":"context"}],"output":{"name":"layout"}}],[11,"clone","","",25,{"inputs":[{"name":"self"}],"output":{"name":"renderer"}}],[11,"fmt","","",25,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"hash","","",25,null],[11,"static_type","","",25,{"inputs":[],"output":{"name":"type"}}],[11,"eq","","",25,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"clone","","",26,{"inputs":[{"name":"self"}],"output":{"name":"attrlist"}}],[11,"new","","",26,{"inputs":[],"output":{"name":"attrlist"}}],[11,"copy","","",26,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"splice","","",26,{"inputs":[{"name":"self"},{"name":"attrlist"},{"name":"i32"},{"name":"i32"}],"output":null}],[11,"clone","","",27,{"inputs":[{"name":"self"}],"output":{"name":"attribute"}}],[11,"fmt","","",27,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"init","","",27,{"inputs":[{"name":"self"},{"name":"attrclass"}],"output":null}],[11,"eq","","",27,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"bool"}}],[11,"clone","","",28,{"inputs":[{"name":"self"}],"output":{"name":"color"}}],[11,"fmt","","",28,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"parse","","",28,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"bool"}}],[11,"fmt","","",28,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",29,{"inputs":[{"name":"self"}],"output":{"name":"coverage"}}],[11,"copy","","",29,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"get","","",29,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"coveragelevel"}}],[11,"max","","",29,{"inputs":[{"name":"self"},{"name":"coverage"}],"output":null}],[11,"set","","",29,{"inputs":[{"name":"self"},{"name":"i32"},{"name":"coveragelevel"}],"output":null}],[11,"new","","",29,{"inputs":[],"output":{"name":"option"}}],[11,"clone","","",30,{"inputs":[{"name":"self"}],"output":{"name":"fontdescription"}}],[11,"fmt","","",30,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"new","","",30,{"inputs":[],"output":{"name":"fontdescription"}}],[11,"better_match","","",30,{"inputs":[{"name":"self"},{"name":"p"},{"name":"fontdescription"}],"output":{"name":"bool"}}],[11,"get_family","","",30,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"get_gravity","","",30,{"inputs":[{"name":"self"}],"output":{"name":"gravity"}}],[11,"get_set_fields","","",30,{"inputs":[{"name":"self"}],"output":{"name":"fontmask"}}],[11,"get_size","","",30,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_size_is_absolute","","",30,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"get_stretch","","",30,{"inputs":[{"name":"self"}],"output":{"name":"stretch"}}],[11,"get_style","","",30,{"inputs":[{"name":"self"}],"output":{"name":"style"}}],[11,"get_variant","","",30,{"inputs":[{"name":"self"}],"output":{"name":"variant"}}],[11,"get_weight","","",30,{"inputs":[{"name":"self"}],"output":{"name":"weight"}}],[11,"hash","","",30,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[11,"merge","","",30,{"inputs":[{"name":"self"},{"name":"p"},{"name":"bool"}],"output":null}],[11,"set_absolute_size","","",30,{"inputs":[{"name":"self"},{"name":"f64"}],"output":null}],[11,"set_family","","",30,{"inputs":[{"name":"self"},{"name":"str"}],"output":null}],[11,"set_gravity","","",30,{"inputs":[{"name":"self"},{"name":"gravity"}],"output":null}],[11,"set_size","","",30,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[11,"set_stretch","","",30,{"inputs":[{"name":"self"},{"name":"stretch"}],"output":null}],[11,"set_style","","",30,{"inputs":[{"name":"self"},{"name":"style"}],"output":null}],[11,"set_variant","","",30,{"inputs":[{"name":"self"},{"name":"variant"}],"output":null}],[11,"set_weight","","",30,{"inputs":[{"name":"self"},{"name":"weight"}],"output":null}],[11,"to_filename","","",30,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"unset_fields","","",30,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"from_string","","",30,{"inputs":[{"name":"str"}],"output":{"name":"fontdescription"}}],[11,"eq","","",30,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"bool"}}],[11,"fmt","","",30,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",31,{"inputs":[{"name":"self"}],"output":{"name":"fontmetrics"}}],[11,"new","","",31,{"inputs":[],"output":{"name":"fontmetrics"}}],[11,"get_approximate_char_width","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_approximate_digit_width","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_ascent","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_descent","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_strikethrough_position","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_strikethrough_thickness","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_underline_position","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_underline_thickness","","",31,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"clone","","",32,{"inputs":[{"name":"self"}],"output":{"name":"glyphitem"}}],[11,"fmt","","",32,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"apply_attrs","","",32,{"inputs":[{"name":"self"},{"name":"str"},{"name":"attrlist"}],"output":{"name":"vec"}}],[11,"split","","",32,{"inputs":[{"name":"self"},{"name":"str"},{"name":"i32"}],"output":{"name":"option"}}],[11,"clone","","",33,{"inputs":[{"name":"self"}],"output":{"name":"glyphitemiter"}}],[11,"fmt","","",33,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"init_end","","",33,{"inputs":[{"name":"self"},{"name":"glyphitem"},{"name":"str"}],"output":{"name":"bool"}}],[11,"init_start","","",33,{"inputs":[{"name":"self"},{"name":"glyphitem"},{"name":"str"}],"output":{"name":"bool"}}],[11,"next_cluster","","",33,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"prev_cluster","","",33,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"clone","","",34,{"inputs":[{"name":"self"}],"output":{"name":"glyphstring"}}],[11,"fmt","","",34,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"new","","",34,{"inputs":[],"output":{"name":"glyphstring"}}],[11,"extents","","",34,null],[11,"extents_range","","",34,null],[11,"get_width","","",34,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"set_size","","",34,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[11,"clone","","",35,{"inputs":[{"name":"self"}],"output":{"name":"layoutiter"}}],[11,"fmt","","",35,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"at_last_line","","",35,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"get_baseline","","",35,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_char_extents","","",35,{"inputs":[{"name":"self"}],"output":{"name":"rectangle"}}],[11,"get_cluster_extents","","",35,null],[11,"get_index","","",35,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_layout","","",35,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"get_layout_extents","","",35,null],[11,"get_line","","",35,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"get_line_extents","","",35,null],[11,"get_line_readonly","","",35,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"get_line_yrange","","",35,null],[11,"get_run","","",35,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"get_run_extents","","",35,null],[11,"get_run_readonly","","",35,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next_char","","",35,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"next_cluster","","",35,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"next_line","","",35,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"next_run","","",35,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"clone","","",36,{"inputs":[{"name":"self"}],"output":{"name":"layoutline"}}],[11,"get_extents","","",36,null],[11,"get_pixel_extents","","",36,null],[11,"index_to_x","","",36,{"inputs":[{"name":"self"},{"name":"i32"},{"name":"bool"}],"output":{"name":"i32"}}],[11,"x_to_index","","",36,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"option"}}],[11,"clone","","",37,{"inputs":[{"name":"self"}],"output":{"name":"matrix"}}],[11,"fmt","","",37,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"concat","","",37,{"inputs":[{"name":"self"},{"name":"matrix"}],"output":null}],[11,"get_font_scale_factor","","",37,{"inputs":[{"name":"self"}],"output":{"name":"f64"}}],[11,"rotate","","",37,{"inputs":[{"name":"self"},{"name":"f64"}],"output":null}],[11,"scale","","",37,{"inputs":[{"name":"self"},{"name":"f64"},{"name":"f64"}],"output":null}],[11,"transform_distance","","",37,{"inputs":[{"name":"self"},{"name":"f64"},{"name":"f64"}],"output":null}],[11,"transform_point","","",37,{"inputs":[{"name":"self"},{"name":"f64"},{"name":"f64"}],"output":null}],[11,"translate","","",37,{"inputs":[{"name":"self"},{"name":"f64"},{"name":"f64"}],"output":null}],[11,"clone","","",38,{"inputs":[{"name":"self"}],"output":{"name":"tabarray"}}],[11,"fmt","","",38,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"new","","",38,{"inputs":[{"name":"i32"},{"name":"bool"}],"output":{"name":"tabarray"}}],[11,"get_positions_in_pixels","","",38,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"get_size","","",38,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[11,"get_tab","","",38,null],[11,"resize","","",38,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[11,"set_tab","","",38,{"inputs":[{"name":"self"},{"name":"i32"},{"name":"tabalign"},{"name":"i32"}],"output":null}],[11,"clone","","",0,{"inputs":[{"name":"self"}],"output":{"name":"alignment"}}],[11,"fmt","","",0,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",0,{"inputs":[{"name":"self"},{"name":"alignment"}],"output":{"name":"bool"}}],[11,"ne","","",0,{"inputs":[{"name":"self"},{"name":"alignment"}],"output":{"name":"bool"}}],[11,"hash","","",0,null],[11,"clone","","",1,{"inputs":[{"name":"self"}],"output":{"name":"attrtype"}}],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",1,{"inputs":[{"name":"self"},{"name":"attrtype"}],"output":{"name":"bool"}}],[11,"ne","","",1,{"inputs":[{"name":"self"},{"name":"attrtype"}],"output":{"name":"bool"}}],[11,"hash","","",1,null],[11,"clone","","",2,{"inputs":[{"name":"self"}],"output":{"name":"biditype"}}],[11,"fmt","","",2,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",2,{"inputs":[{"name":"self"},{"name":"biditype"}],"output":{"name":"bool"}}],[11,"ne","","",2,{"inputs":[{"name":"self"},{"name":"biditype"}],"output":{"name":"bool"}}],[11,"hash","","",2,null],[11,"clone","","",3,{"inputs":[{"name":"self"}],"output":{"name":"coveragelevel"}}],[11,"fmt","","",3,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",3,{"inputs":[{"name":"self"},{"name":"coveragelevel"}],"output":{"name":"bool"}}],[11,"ne","","",3,{"inputs":[{"name":"self"},{"name":"coveragelevel"}],"output":{"name":"bool"}}],[11,"hash","","",3,null],[11,"clone","","",4,{"inputs":[{"name":"self"}],"output":{"name":"direction"}}],[11,"fmt","","",4,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",4,{"inputs":[{"name":"self"},{"name":"direction"}],"output":{"name":"bool"}}],[11,"ne","","",4,{"inputs":[{"name":"self"},{"name":"direction"}],"output":{"name":"bool"}}],[11,"hash","","",4,null],[11,"clone","","",5,{"inputs":[{"name":"self"}],"output":{"name":"ellipsizemode"}}],[11,"fmt","","",5,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",5,{"inputs":[{"name":"self"},{"name":"ellipsizemode"}],"output":{"name":"bool"}}],[11,"ne","","",5,{"inputs":[{"name":"self"},{"name":"ellipsizemode"}],"output":{"name":"bool"}}],[11,"hash","","",5,null],[11,"clone","","",6,{"inputs":[{"name":"self"}],"output":{"name":"gravity"}}],[11,"fmt","","",6,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",6,{"inputs":[{"name":"self"},{"name":"gravity"}],"output":{"name":"bool"}}],[11,"ne","","",6,{"inputs":[{"name":"self"},{"name":"gravity"}],"output":{"name":"bool"}}],[11,"hash","","",6,null],[11,"clone","","",7,{"inputs":[{"name":"self"}],"output":{"name":"gravityhint"}}],[11,"fmt","","",7,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",7,{"inputs":[{"name":"self"},{"name":"gravityhint"}],"output":{"name":"bool"}}],[11,"ne","","",7,{"inputs":[{"name":"self"},{"name":"gravityhint"}],"output":{"name":"bool"}}],[11,"hash","","",7,null],[11,"clone","","",8,{"inputs":[{"name":"self"}],"output":{"name":"renderpart"}}],[11,"fmt","","",8,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",8,{"inputs":[{"name":"self"},{"name":"renderpart"}],"output":{"name":"bool"}}],[11,"ne","","",8,{"inputs":[{"name":"self"},{"name":"renderpart"}],"output":{"name":"bool"}}],[11,"hash","","",8,null],[11,"clone","","",9,{"inputs":[{"name":"self"}],"output":{"name":"script"}}],[11,"fmt","","",9,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",9,{"inputs":[{"name":"self"},{"name":"script"}],"output":{"name":"bool"}}],[11,"ne","","",9,{"inputs":[{"name":"self"},{"name":"script"}],"output":{"name":"bool"}}],[11,"hash","","",9,null],[11,"clone","","",10,{"inputs":[{"name":"self"}],"output":{"name":"stretch"}}],[11,"fmt","","",10,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",10,{"inputs":[{"name":"self"},{"name":"stretch"}],"output":{"name":"bool"}}],[11,"ne","","",10,{"inputs":[{"name":"self"},{"name":"stretch"}],"output":{"name":"bool"}}],[11,"hash","","",10,null],[11,"clone","","",11,{"inputs":[{"name":"self"}],"output":{"name":"style"}}],[11,"fmt","","",11,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",11,{"inputs":[{"name":"self"},{"name":"style"}],"output":{"name":"bool"}}],[11,"ne","","",11,{"inputs":[{"name":"self"},{"name":"style"}],"output":{"name":"bool"}}],[11,"hash","","",11,null],[11,"clone","","",12,{"inputs":[{"name":"self"}],"output":{"name":"tabalign"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",12,{"inputs":[{"name":"self"},{"name":"tabalign"}],"output":{"name":"bool"}}],[11,"ne","","",12,{"inputs":[{"name":"self"},{"name":"tabalign"}],"output":{"name":"bool"}}],[11,"hash","","",12,null],[11,"clone","","",13,{"inputs":[{"name":"self"}],"output":{"name":"underline"}}],[11,"fmt","","",13,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",13,{"inputs":[{"name":"self"},{"name":"underline"}],"output":{"name":"bool"}}],[11,"ne","","",13,{"inputs":[{"name":"self"},{"name":"underline"}],"output":{"name":"bool"}}],[11,"hash","","",13,null],[11,"clone","","",14,{"inputs":[{"name":"self"}],"output":{"name":"variant"}}],[11,"fmt","","",14,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",14,{"inputs":[{"name":"self"},{"name":"variant"}],"output":{"name":"bool"}}],[11,"ne","","",14,{"inputs":[{"name":"self"},{"name":"variant"}],"output":{"name":"bool"}}],[11,"hash","","",14,null],[11,"clone","","",15,{"inputs":[{"name":"self"}],"output":{"name":"weight"}}],[11,"fmt","","",15,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",15,{"inputs":[{"name":"self"},{"name":"weight"}],"output":{"name":"bool"}}],[11,"ne","","",15,{"inputs":[{"name":"self"},{"name":"weight"}],"output":{"name":"bool"}}],[11,"hash","","",15,null],[11,"clone","","",16,{"inputs":[{"name":"self"}],"output":{"name":"wrapmode"}}],[11,"fmt","","",16,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",16,{"inputs":[{"name":"self"},{"name":"wrapmode"}],"output":{"name":"bool"}}],[11,"ne","","",16,{"inputs":[{"name":"self"},{"name":"wrapmode"}],"output":{"name":"bool"}}],[11,"hash","","",16,null],[11,"eq","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"ne","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"clone","","",39,{"inputs":[{"name":"self"}],"output":{"name":"fontmask"}}],[11,"partial_cmp","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"option"}}],[11,"lt","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"le","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"gt","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"ge","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"cmp","","",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"ordering"}}],[11,"hash","","",39,null],[11,"fmt","","",39,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",39,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",39,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",39,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",39,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"empty","","Returns an empty set of flags.",39,{"inputs":[],"output":{"name":"fontmask"}}],[11,"all","","Returns the set containing all flags.",39,{"inputs":[],"output":{"name":"fontmask"}}],[11,"bits","","Returns the raw value of the flags currently stored.",39,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[11,"from_bits","","Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.",39,{"inputs":[{"name":"u32"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits that do not correspond to flags.",39,{"inputs":[{"name":"u32"}],"output":{"name":"fontmask"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",39,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"is_all","","Returns `true` if all flags are currently set.",39,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"bool"}}],[11,"insert","","Inserts the specified flags in-place.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"remove","","Removes the specified flags in-place.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"toggle","","Toggles the specified flags in-place.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"set","","Inserts or removes the specified flags depending on the passed value.",39,{"inputs":[{"name":"self"},{"name":"fontmask"},{"name":"bool"}],"output":null}],[11,"bitor","","Returns the union of the two sets of flags.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"fontmask"}}],[11,"bitor_assign","","Adds the set of flags.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"fontmask"}}],[11,"bitxor_assign","","Toggles the set of flags.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"bitand","","Returns the intersection between the two sets of flags.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"fontmask"}}],[11,"bitand_assign","","Disables all flags disabled in the set.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"sub","","Returns the set difference of the two sets of flags.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":{"name":"fontmask"}}],[11,"sub_assign","","Disables all flags enabled in the set.",39,{"inputs":[{"name":"self"},{"name":"fontmask"}],"output":null}],[11,"not","","Returns the complement of this set of flags.",39,{"inputs":[{"name":"self"}],"output":{"name":"fontmask"}}],[11,"extend","","",39,{"inputs":[{"name":"self"},{"name":"t"}],"output":null}],[11,"from_iter","","",39,{"inputs":[{"name":"t"}],"output":{"name":"fontmask"}}],[0,"functions","","",null,null],[5,"config_key_get","pango::functions","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"config_key_get_system","","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"extents_to_pixels","","",null,{"inputs":[{"name":"p"},{"name":"q"}],"output":null}],[5,"find_base_dir","","",null,{"inputs":[{"name":"str"},{"name":"i32"}],"output":{"name":"direction"}}],[5,"find_paragraph_boundary","","",null,null],[5,"get_lib_subdirectory","","",null,{"inputs":[],"output":{"name":"option"}}],[5,"get_sysconf_subdirectory","","",null,{"inputs":[],"output":{"name":"option"}}],[5,"is_zero_width","","",null,{"inputs":[{"name":"char"}],"output":{"name":"bool"}}],[5,"parse_enum","","",null,{"inputs":[{"name":"type"},{"name":"p"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_markup","","",null,{"inputs":[{"name":"str"},{"name":"i32"},{"name":"char"}],"output":{"name":"result"}}],[5,"parse_stretch","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_style","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_variant","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"parse_weight","","",null,{"inputs":[{"name":"str"},{"name":"bool"}],"output":{"name":"option"}}],[5,"quantize_line_geometry","","",null,{"inputs":[{"name":"i32"},{"name":"i32"}],"output":null}],[5,"split_file_list","","",null,{"inputs":[{"name":"str"}],"output":{"name":"vec"}}],[5,"trim_string","","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"unichar_direction","","",null,{"inputs":[{"name":"char"}],"output":{"name":"direction"}}],[5,"units_from_double","","",null,{"inputs":[{"name":"f64"}],"output":{"name":"i32"}}],[5,"units_to_double","","",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[5,"version","","",null,{"inputs":[],"output":{"name":"i32"}}],[5,"version_check","","",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":{"name":"option"}}],[5,"version_string","","",null,{"inputs":[],"output":{"name":"option"}}],[0,"prelude","pango","Traits and essential types inteded for blanket imports.",null,null],[8,"ContextExt","pango::prelude","",null,null],[10,"changed","","",40,{"inputs":[{"name":"self"}],"output":null}],[10,"get_base_dir","","",40,{"inputs":[{"name":"self"}],"output":{"name":"direction"}}],[10,"get_base_gravity","","",40,{"inputs":[{"name":"self"}],"output":{"name":"gravity"}}],[10,"get_font_description","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_font_map","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_gravity","","",40,{"inputs":[{"name":"self"}],"output":{"name":"gravity"}}],[10,"get_gravity_hint","","",40,{"inputs":[{"name":"self"}],"output":{"name":"gravityhint"}}],[10,"get_language","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_matrix","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_metrics","","",40,{"inputs":[{"name":"self"},{"name":"p"},{"name":"q"}],"output":{"name":"option"}}],[10,"get_serial","","",40,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[10,"load_font","","",40,{"inputs":[{"name":"self"},{"name":"fontdescription"}],"output":{"name":"option"}}],[10,"load_fontset","","",40,{"inputs":[{"name":"self"},{"name":"fontdescription"},{"name":"language"}],"output":{"name":"option"}}],[10,"set_base_dir","","",40,{"inputs":[{"name":"self"},{"name":"direction"}],"output":null}],[10,"set_base_gravity","","",40,{"inputs":[{"name":"self"},{"name":"gravity"}],"output":null}],[10,"set_font_description","","",40,{"inputs":[{"name":"self"},{"name":"fontdescription"}],"output":null}],[10,"set_font_map","","",40,{"inputs":[{"name":"self"},{"name":"fontmap"}],"output":null}],[10,"set_gravity_hint","","",40,{"inputs":[{"name":"self"},{"name":"gravityhint"}],"output":null}],[10,"set_language","","",40,{"inputs":[{"name":"self"},{"name":"language"}],"output":null}],[10,"set_matrix","","",40,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[8,"FontExt","","",null,null],[10,"describe","","",41,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"describe_with_absolute_size","","",41,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"find_shaper","","",41,{"inputs":[{"name":"self"},{"name":"language"},{"name":"u32"}],"output":{"name":"option"}}],[10,"get_coverage","","",41,{"inputs":[{"name":"self"},{"name":"language"}],"output":{"name":"option"}}],[10,"get_font_map","","",41,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_glyph_extents","","",41,null],[10,"get_metrics","","",41,{"inputs":[{"name":"self"},{"name":"p"}],"output":{"name":"option"}}],[8,"FontFaceExt","","",null,null],[10,"describe","","",42,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_face_name","","",42,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"is_synthesized","","",42,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[8,"FontFamilyExt","","",null,null],[10,"get_name","","",43,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"is_monospace","","",43,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[8,"FontMapExt","","",null,null],[10,"changed","","",44,{"inputs":[{"name":"self"}],"output":null}],[10,"create_context","","",44,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_serial","","",44,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[10,"get_shape_engine_type","","",44,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"load_font","","",44,{"inputs":[{"name":"self"},{"name":"context"},{"name":"fontdescription"}],"output":{"name":"option"}}],[10,"load_fontset","","",44,{"inputs":[{"name":"self"},{"name":"context"},{"name":"fontdescription"},{"name":"language"}],"output":{"name":"option"}}],[8,"FontsetExt","","",null,null],[10,"get_font","","",45,{"inputs":[{"name":"self"},{"name":"u32"}],"output":{"name":"option"}}],[10,"get_metrics","","",45,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[8,"LayoutExt","","",null,null],[10,"context_changed","","",46,{"inputs":[{"name":"self"}],"output":null}],[10,"copy","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_alignment","","",46,{"inputs":[{"name":"self"}],"output":{"name":"alignment"}}],[10,"get_attributes","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_auto_dir","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"get_baseline","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_character_count","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_context","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_cursor_pos","","",46,null],[10,"get_ellipsize","","",46,{"inputs":[{"name":"self"}],"output":{"name":"ellipsizemode"}}],[10,"get_extents","","",46,null],[10,"get_font_description","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_height","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_indent","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_iter","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_justify","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"get_line","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"option"}}],[10,"get_line_count","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_line_readonly","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"option"}}],[10,"get_lines","","",46,{"inputs":[{"name":"self"}],"output":{"name":"vec"}}],[10,"get_lines_readonly","","",46,{"inputs":[{"name":"self"}],"output":{"name":"vec"}}],[10,"get_pixel_extents","","",46,null],[10,"get_pixel_size","","",46,null],[10,"get_serial","","",46,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[10,"get_single_paragraph_mode","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"get_size","","",46,null],[10,"get_spacing","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_tabs","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_text","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_unknown_glyphs_count","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_width","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_wrap","","",46,{"inputs":[{"name":"self"}],"output":{"name":"wrapmode"}}],[10,"index_to_line_x","","",46,null],[10,"index_to_pos","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"rectangle"}}],[10,"is_ellipsized","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"is_wrapped","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"move_cursor_visually","","",46,null],[10,"set_alignment","","",46,{"inputs":[{"name":"self"},{"name":"alignment"}],"output":null}],[10,"set_attributes","","",46,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[10,"set_auto_dir","","",46,{"inputs":[{"name":"self"},{"name":"bool"}],"output":null}],[10,"set_ellipsize","","",46,{"inputs":[{"name":"self"},{"name":"ellipsizemode"}],"output":null}],[10,"set_font_description","","",46,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[10,"set_height","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_indent","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_justify","","",46,{"inputs":[{"name":"self"},{"name":"bool"}],"output":null}],[10,"set_markup","","",46,{"inputs":[{"name":"self"},{"name":"str"},{"name":"i32"}],"output":null}],[10,"set_markup_with_accel","","",46,{"inputs":[{"name":"self"},{"name":"str"},{"name":"i32"},{"name":"char"}],"output":{"name":"char"}}],[10,"set_single_paragraph_mode","","",46,{"inputs":[{"name":"self"},{"name":"bool"}],"output":null}],[10,"set_spacing","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_tabs","","",46,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[10,"set_text","","",46,{"inputs":[{"name":"self"},{"name":"str"},{"name":"i32"}],"output":null}],[10,"set_width","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_wrap","","",46,{"inputs":[{"name":"self"},{"name":"wrapmode"}],"output":null}],[10,"xy_to_index","","",46,null],[8,"RendererExt","","",null,null],[10,"activate","","",47,{"inputs":[{"name":"self"}],"output":null}],[10,"deactivate","","",47,{"inputs":[{"name":"self"}],"output":null}],[10,"draw_error_underline","","",47,{"inputs":[{"name":"self"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_glyph","","",47,{"inputs":[{"name":"self"},{"name":"font"},{"name":"glyph"},{"name":"f64"},{"name":"f64"}],"output":null}],[10,"draw_glyph_item","","",47,{"inputs":[{"name":"self"},{"name":"p"},{"name":"glyphitem"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_glyphs","","",47,{"inputs":[{"name":"self"},{"name":"font"},{"name":"glyphstring"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_layout","","",47,{"inputs":[{"name":"self"},{"name":"layout"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_layout_line","","",47,{"inputs":[{"name":"self"},{"name":"layoutline"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_rectangle","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_trapezoid","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[10,"get_color","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"}],"output":{"name":"option"}}],[10,"get_layout","","",47,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_layout_line","","",47,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_matrix","","",47,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"part_changed","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"}],"output":null}],[10,"set_color","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"},{"name":"p"}],"output":null}],[10,"set_matrix","","",47,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[0,"attr_class","pango","",null,null],[3,"AttrClass","pango::attr_class","",null,null],[11,"eq","","",48,{"inputs":[{"name":"self"},{"name":"attrclass"}],"output":{"name":"bool"}}],[0,"attr_list","pango","",null,null],[11,"change","","",26,{"inputs":[{"name":"self"},{"name":"attribute"}],"output":null}],[11,"insert","","",26,{"inputs":[{"name":"self"},{"name":"attribute"}],"output":null}],[11,"insert_before","","",26,{"inputs":[{"name":"self"},{"name":"attribute"}],"output":null}],[0,"attribute","","",null,null],[11,"new_background","","",27,{"inputs":[{"name":"u16"},{"name":"u16"},{"name":"u16"}],"output":{"name":"option"}}],[11,"new_fallback","","",27,{"inputs":[{"name":"bool"}],"output":{"name":"option"}}],[11,"new_family","","",27,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[11,"new_foreground","","",27,{"inputs":[{"name":"u16"},{"name":"u16"},{"name":"u16"}],"output":{"name":"option"}}],[11,"new_gravity_hint","","",27,{"inputs":[{"name":"gravityhint"}],"output":{"name":"option"}}],[11,"new_gravity","","",27,{"inputs":[{"name":"gravity"}],"output":{"name":"option"}}],[11,"new_letter_spacing","","",27,{"inputs":[{"name":"i32"}],"output":{"name":"option"}}],[11,"new_rise","","",27,{"inputs":[{"name":"i32"}],"output":{"name":"option"}}],[11,"new_scale","","",27,{"inputs":[{"name":"f64"}],"output":{"name":"option"}}],[11,"new_stretch","","",27,{"inputs":[{"name":"stretch"}],"output":{"name":"option"}}],[11,"new_strikethrough_color","","",27,{"inputs":[{"name":"u16"},{"name":"u16"},{"name":"u16"}],"output":{"name":"option"}}],[11,"new_strikethrough","","",27,{"inputs":[{"name":"bool"}],"output":{"name":"option"}}],[11,"new_style","","",27,{"inputs":[{"name":"style"}],"output":{"name":"option"}}],[11,"new_underline_color","","",27,{"inputs":[{"name":"u16"},{"name":"u16"},{"name":"u16"}],"output":{"name":"option"}}],[11,"new_underline","","",27,{"inputs":[{"name":"underline"}],"output":{"name":"option"}}],[11,"new_variant","","",27,{"inputs":[{"name":"variant"}],"output":{"name":"option"}}],[11,"new_weight","","",27,{"inputs":[{"name":"weight"}],"output":{"name":"option"}}],[11,"get_attr_class","","",27,{"inputs":[{"name":"self"}],"output":{"name":"attrclass"}}],[11,"get_start_index","","",27,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[11,"get_end_index","","",27,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[11,"set_start_index","","",27,{"inputs":[{"name":"self"},{"name":"u32"}],"output":null}],[11,"set_end_index","","",27,{"inputs":[{"name":"self"},{"name":"u32"}],"output":null}],[0,"font_description","","",null,null],[11,"set_family_static","","",30,{"inputs":[{"name":"self"},{"name":"str"}],"output":null}],[0,"item","","",null,null],[3,"Item","pango::item","",null,null],[11,"new","","",49,{"inputs":[],"output":{"name":"option"}}],[11,"copy","","",49,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"split","","",49,{"inputs":[{"name":"self"},{"name":"i32"},{"name":"i32"}],"output":{"name":"option"}}],[11,"drop","","",49,{"inputs":[{"name":"self"}],"output":null}],[0,"language","pango","",null,null],[3,"Language","pango::language","",null,null],[11,"default","","",50,{"inputs":[],"output":{"name":"language"}}],[11,"from_string","","",50,{"inputs":[{"name":"str"}],"output":{"name":"language"}}],[11,"to_string","","",50,{"inputs":[{"name":"self"}],"output":{"name":"string"}}],[11,"matches","","",50,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"bool"}}],[11,"includes_script","","",50,{"inputs":[{"name":"self"},{"name":"script"}],"output":{"name":"bool"}}],[11,"get_scripts","","",50,{"inputs":[{"name":"self"}],"output":{"name":"vec"}}],[11,"get_sample_string","","",50,{"inputs":[{"name":"self"}],"output":{"name":"string"}}],[0,"matrix","pango","",null,null],[0,"rectangle","","",null,null],[3,"Rectangle","pango::rectangle","",null,null],[12,"x","","",51,null],[12,"y","","",51,null],[12,"width","","",51,null],[12,"height","","",51,null],[11,"clone","","",51,{"inputs":[{"name":"self"}],"output":{"name":"rectangle"}}],[11,"fmt","","",51,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",51,{"inputs":[{"name":"self"},{"name":"rectangle"}],"output":{"name":"bool"}}],[11,"ne","","",51,{"inputs":[{"name":"self"},{"name":"rectangle"}],"output":{"name":"bool"}}],[11,"hash","","",51,null],[11,"new","","",51,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":{"name":"rectangle"}}],[6,"Glyph","pango","",null,null],[6,"LayoutRun","","",null,null],[17,"FONT_MASK_FAMILY","","",null,null],[17,"FONT_MASK_STYLE","","",null,null],[17,"FONT_MASK_VARIANT","","",null,null],[17,"FONT_MASK_WEIGHT","","",null,null],[17,"FONT_MASK_STRETCH","","",null,null],[17,"FONT_MASK_SIZE","","",null,null],[17,"FONT_MASK_GRAVITY","","",null,null],[8,"ContextExt","","",null,null],[10,"changed","","",40,{"inputs":[{"name":"self"}],"output":null}],[10,"get_base_dir","","",40,{"inputs":[{"name":"self"}],"output":{"name":"direction"}}],[10,"get_base_gravity","","",40,{"inputs":[{"name":"self"}],"output":{"name":"gravity"}}],[10,"get_font_description","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_font_map","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_gravity","","",40,{"inputs":[{"name":"self"}],"output":{"name":"gravity"}}],[10,"get_gravity_hint","","",40,{"inputs":[{"name":"self"}],"output":{"name":"gravityhint"}}],[10,"get_language","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_matrix","","",40,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_metrics","","",40,{"inputs":[{"name":"self"},{"name":"p"},{"name":"q"}],"output":{"name":"option"}}],[10,"get_serial","","",40,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[10,"load_font","","",40,{"inputs":[{"name":"self"},{"name":"fontdescription"}],"output":{"name":"option"}}],[10,"load_fontset","","",40,{"inputs":[{"name":"self"},{"name":"fontdescription"},{"name":"language"}],"output":{"name":"option"}}],[10,"set_base_dir","","",40,{"inputs":[{"name":"self"},{"name":"direction"}],"output":null}],[10,"set_base_gravity","","",40,{"inputs":[{"name":"self"},{"name":"gravity"}],"output":null}],[10,"set_font_description","","",40,{"inputs":[{"name":"self"},{"name":"fontdescription"}],"output":null}],[10,"set_font_map","","",40,{"inputs":[{"name":"self"},{"name":"fontmap"}],"output":null}],[10,"set_gravity_hint","","",40,{"inputs":[{"name":"self"},{"name":"gravityhint"}],"output":null}],[10,"set_language","","",40,{"inputs":[{"name":"self"},{"name":"language"}],"output":null}],[10,"set_matrix","","",40,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[8,"FontExt","","",null,null],[10,"describe","","",41,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"describe_with_absolute_size","","",41,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"find_shaper","","",41,{"inputs":[{"name":"self"},{"name":"language"},{"name":"u32"}],"output":{"name":"option"}}],[10,"get_coverage","","",41,{"inputs":[{"name":"self"},{"name":"language"}],"output":{"name":"option"}}],[10,"get_font_map","","",41,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_glyph_extents","","",41,null],[10,"get_metrics","","",41,{"inputs":[{"name":"self"},{"name":"p"}],"output":{"name":"option"}}],[8,"FontFaceExt","","",null,null],[10,"describe","","",42,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_face_name","","",42,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"is_synthesized","","",42,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[8,"FontFamilyExt","","",null,null],[10,"get_name","","",43,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"is_monospace","","",43,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[8,"FontMapExt","","",null,null],[10,"changed","","",44,{"inputs":[{"name":"self"}],"output":null}],[10,"create_context","","",44,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_serial","","",44,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[10,"get_shape_engine_type","","",44,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"load_font","","",44,{"inputs":[{"name":"self"},{"name":"context"},{"name":"fontdescription"}],"output":{"name":"option"}}],[10,"load_fontset","","",44,{"inputs":[{"name":"self"},{"name":"context"},{"name":"fontdescription"},{"name":"language"}],"output":{"name":"option"}}],[8,"FontsetExt","","",null,null],[10,"get_font","","",45,{"inputs":[{"name":"self"},{"name":"u32"}],"output":{"name":"option"}}],[10,"get_metrics","","",45,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[8,"LayoutExt","","",null,null],[10,"context_changed","","",46,{"inputs":[{"name":"self"}],"output":null}],[10,"copy","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_alignment","","",46,{"inputs":[{"name":"self"}],"output":{"name":"alignment"}}],[10,"get_attributes","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_auto_dir","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"get_baseline","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_character_count","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_context","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_cursor_pos","","",46,null],[10,"get_ellipsize","","",46,{"inputs":[{"name":"self"}],"output":{"name":"ellipsizemode"}}],[10,"get_extents","","",46,null],[10,"get_font_description","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_height","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_indent","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_iter","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_justify","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"get_line","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"option"}}],[10,"get_line_count","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_line_readonly","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"option"}}],[10,"get_lines","","",46,{"inputs":[{"name":"self"}],"output":{"name":"vec"}}],[10,"get_lines_readonly","","",46,{"inputs":[{"name":"self"}],"output":{"name":"vec"}}],[10,"get_pixel_extents","","",46,null],[10,"get_pixel_size","","",46,null],[10,"get_serial","","",46,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[10,"get_single_paragraph_mode","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"get_size","","",46,null],[10,"get_spacing","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_tabs","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_text","","",46,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_unknown_glyphs_count","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_width","","",46,{"inputs":[{"name":"self"}],"output":{"name":"i32"}}],[10,"get_wrap","","",46,{"inputs":[{"name":"self"}],"output":{"name":"wrapmode"}}],[10,"index_to_line_x","","",46,null],[10,"index_to_pos","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":{"name":"rectangle"}}],[10,"is_ellipsized","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"is_wrapped","","",46,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[10,"move_cursor_visually","","",46,null],[10,"set_alignment","","",46,{"inputs":[{"name":"self"},{"name":"alignment"}],"output":null}],[10,"set_attributes","","",46,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[10,"set_auto_dir","","",46,{"inputs":[{"name":"self"},{"name":"bool"}],"output":null}],[10,"set_ellipsize","","",46,{"inputs":[{"name":"self"},{"name":"ellipsizemode"}],"output":null}],[10,"set_font_description","","",46,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[10,"set_height","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_indent","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_justify","","",46,{"inputs":[{"name":"self"},{"name":"bool"}],"output":null}],[10,"set_markup","","",46,{"inputs":[{"name":"self"},{"name":"str"},{"name":"i32"}],"output":null}],[10,"set_markup_with_accel","","",46,{"inputs":[{"name":"self"},{"name":"str"},{"name":"i32"},{"name":"char"}],"output":{"name":"char"}}],[10,"set_single_paragraph_mode","","",46,{"inputs":[{"name":"self"},{"name":"bool"}],"output":null}],[10,"set_spacing","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_tabs","","",46,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[10,"set_text","","",46,{"inputs":[{"name":"self"},{"name":"str"},{"name":"i32"}],"output":null}],[10,"set_width","","",46,{"inputs":[{"name":"self"},{"name":"i32"}],"output":null}],[10,"set_wrap","","",46,{"inputs":[{"name":"self"},{"name":"wrapmode"}],"output":null}],[10,"xy_to_index","","",46,null],[8,"RendererExt","","",null,null],[10,"activate","","",47,{"inputs":[{"name":"self"}],"output":null}],[10,"deactivate","","",47,{"inputs":[{"name":"self"}],"output":null}],[10,"draw_error_underline","","",47,{"inputs":[{"name":"self"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_glyph","","",47,{"inputs":[{"name":"self"},{"name":"font"},{"name":"glyph"},{"name":"f64"},{"name":"f64"}],"output":null}],[10,"draw_glyph_item","","",47,{"inputs":[{"name":"self"},{"name":"p"},{"name":"glyphitem"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_glyphs","","",47,{"inputs":[{"name":"self"},{"name":"font"},{"name":"glyphstring"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_layout","","",47,{"inputs":[{"name":"self"},{"name":"layout"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_layout_line","","",47,{"inputs":[{"name":"self"},{"name":"layoutline"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_rectangle","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":null}],[10,"draw_trapezoid","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[10,"get_color","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"}],"output":{"name":"option"}}],[10,"get_layout","","",47,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_layout_line","","",47,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"get_matrix","","",47,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[10,"part_changed","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"}],"output":null}],[10,"set_color","","",47,{"inputs":[{"name":"self"},{"name":"renderpart"},{"name":"p"}],"output":null}],[10,"set_matrix","","",47,{"inputs":[{"name":"self"},{"name":"p"}],"output":null}],[11,"new","","Creates an error with supplied error enum variant and message.",52,{"inputs":[{"name":"t"},{"name":"str"}],"output":{"name":"error"}}],[11,"is","","Checks if the error domain matches `T`.",52,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"kind","","Tries to convert to a specific error enum.",52,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"wrap","","",52,null],[11,"clone","","",52,{"inputs":[{"name":"self"}],"output":{"name":"error"}}],[11,"description","","",52,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"fmt","","",52,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",52,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}]],"paths":[[4,"Alignment"],[4,"AttrType"],[4,"BidiType"],[4,"CoverageLevel"],[4,"Direction"],[4,"EllipsizeMode"],[4,"Gravity"],[4,"GravityHint"],[4,"RenderPart"],[4,"Script"],[4,"Stretch"],[4,"Style"],[4,"TabAlign"],[4,"Underline"],[4,"Variant"],[4,"Weight"],[4,"WrapMode"],[3,"Context"],[3,"EngineShape"],[3,"Font"],[3,"FontFace"],[3,"FontFamily"],[3,"FontMap"],[3,"Fontset"],[3,"Layout"],[3,"Renderer"],[3,"AttrList"],[3,"Attribute"],[3,"Color"],[3,"Coverage"],[3,"FontDescription"],[3,"FontMetrics"],[3,"GlyphItem"],[3,"GlyphItemIter"],[3,"GlyphString"],[3,"LayoutIter"],[3,"LayoutLine"],[3,"Matrix"],[3,"TabArray"],[3,"FontMask"],[8,"ContextExt"],[8,"FontExt"],[8,"FontFaceExt"],[8,"FontFamilyExt"],[8,"FontMapExt"],[8,"FontsetExt"],[8,"LayoutExt"],[8,"RendererExt"],[3,"AttrClass"],[3,"Item"],[3,"Language"],[3,"Rectangle"],[3,"Error"]]}; searchIndex["pango_sys"] = {"doc":"","items":[[3,"PangoFontMask","pango_sys","",null,null],[3,"PangoAnalysis","","",null,null],[12,"shape_engine","","",0,null],[12,"lang_engine","","",0,null],[12,"font","","",0,null],[12,"level","","",0,null],[12,"gravity","","",0,null],[12,"flags","","",0,null],[12,"script","","",0,null],[12,"language","","",0,null],[12,"extra_attrs","","",0,null],[3,"PangoAttrClass","","",null,null],[12,"type_","","",1,null],[12,"copy","","",1,null],[12,"destroy","","",1,null],[12,"equal","","",1,null],[3,"PangoAttrColor","","",null,null],[12,"attr","","",2,null],[12,"color","","",2,null],[3,"PangoAttrFloat","","",null,null],[12,"attr","","",3,null],[12,"value","","",3,null],[3,"PangoAttrFontDesc","","",null,null],[12,"attr","","",4,null],[12,"desc","","",4,null],[3,"PangoAttrFontFeatures","","",null,null],[12,"attr","","",5,null],[12,"features","","",5,null],[3,"PangoAttrInt","","",null,null],[12,"attr","","",6,null],[12,"value","","",6,null],[3,"PangoAttrIterator","","",null,null],[3,"PangoAttrLanguage","","",null,null],[12,"attr","","",7,null],[12,"value","","",7,null],[3,"PangoAttrList","","",null,null],[3,"PangoAttrShape","","",null,null],[12,"attr","","",8,null],[12,"ink_rect","","",8,null],[12,"logical_rect","","",8,null],[12,"data","","",8,null],[12,"copy_func","","",8,null],[12,"destroy_func","","",8,null],[3,"PangoAttrSize","","",null,null],[12,"attr","","",9,null],[12,"size","","",9,null],[3,"PangoAttrString","","",null,null],[12,"attr","","",10,null],[12,"value","","",10,null],[3,"PangoAttribute","","",null,null],[12,"klass","","",11,null],[12,"start_index","","",11,null],[12,"end_index","","",11,null],[3,"PangoColor","","",null,null],[12,"red","","",12,null],[12,"green","","",12,null],[12,"blue","","",12,null],[3,"PangoContextClass","","",null,null],[3,"PangoCoverage","","",null,null],[3,"PangoEngineClass","","",null,null],[12,"parent_class","","",13,null],[3,"PangoEngineInfo","","",null,null],[12,"id","","",14,null],[12,"engine_type","","",14,null],[12,"render_type","","",14,null],[12,"scripts","","",14,null],[12,"n_scripts","","",14,null],[3,"PangoEngineLangClass","","",null,null],[12,"parent_class","","",15,null],[12,"script_break","","",15,null],[3,"PangoEngineScriptInfo","","",null,null],[12,"script","","",16,null],[12,"langs","","",16,null],[3,"PangoEngineShapeClass","","",null,null],[12,"parent_class","","",17,null],[12,"script_shape","","",17,null],[12,"covers","","",17,null],[3,"PangoFontClass","","",null,null],[12,"parent_class","","",18,null],[12,"describe","","",18,null],[12,"get_coverage","","",18,null],[12,"find_shaper","","",18,null],[12,"get_glyph_extents","","",18,null],[12,"get_metrics","","",18,null],[12,"get_font_map","","",18,null],[12,"describe_absolute","","",18,null],[12,"_pango_reserved1","","",18,null],[12,"_pango_reserved2","","",18,null],[3,"PangoFontDescription","","",null,null],[3,"PangoFontFaceClass","","",null,null],[12,"parent_class","","",19,null],[12,"get_face_name","","",19,null],[12,"describe","","",19,null],[12,"list_sizes","","",19,null],[12,"is_synthesized","","",19,null],[12,"_pango_reserved3","","",19,null],[12,"_pango_reserved4","","",19,null],[3,"PangoFontFamilyClass","","",null,null],[12,"parent_class","","",20,null],[12,"list_faces","","",20,null],[12,"get_name","","",20,null],[12,"is_monospace","","",20,null],[12,"_pango_reserved2","","",20,null],[12,"_pango_reserved3","","",20,null],[12,"_pango_reserved4","","",20,null],[3,"PangoFontMapClass","","",null,null],[12,"parent_class","","",21,null],[12,"load_font","","",21,null],[12,"list_families","","",21,null],[12,"load_fontset","","",21,null],[12,"shape_engine_type","","",21,null],[12,"get_serial","","",21,null],[12,"changed","","",21,null],[12,"_pango_reserved1","","",21,null],[12,"_pango_reserved2","","",21,null],[3,"PangoFontMetrics","","",null,null],[12,"ref_count","","",22,null],[12,"ascent","","",22,null],[12,"descent","","",22,null],[12,"approximate_char_width","","",22,null],[12,"approximate_digit_width","","",22,null],[12,"underline_position","","",22,null],[12,"underline_thickness","","",22,null],[12,"strikethrough_position","","",22,null],[12,"strikethrough_thickness","","",22,null],[3,"PangoFontsetClass","","",null,null],[12,"parent_class","","",23,null],[12,"get_font","","",23,null],[12,"get_metrics","","",23,null],[12,"get_language","","",23,null],[12,"foreach","","",23,null],[12,"_pango_reserved1","","",23,null],[12,"_pango_reserved2","","",23,null],[12,"_pango_reserved3","","",23,null],[12,"_pango_reserved4","","",23,null],[3,"PangoFontsetSimpleClass","","",null,null],[3,"PangoGlyphGeometry","","",null,null],[12,"width","","",24,null],[12,"x_offset","","",24,null],[12,"y_offset","","",24,null],[3,"PangoGlyphInfo","","",null,null],[12,"glyph","","",25,null],[12,"geometry","","",25,null],[12,"attr","","",25,null],[3,"PangoGlyphItem","","",null,null],[12,"item","","",26,null],[12,"glyphs","","",26,null],[3,"PangoGlyphItemIter","","",null,null],[12,"glyph_item","","",27,null],[12,"text","","",27,null],[12,"start_glyph","","",27,null],[12,"start_index","","",27,null],[12,"start_char","","",27,null],[12,"end_glyph","","",27,null],[12,"end_index","","",27,null],[12,"end_char","","",27,null],[3,"PangoGlyphString","","",null,null],[12,"num_glyphs","","",28,null],[12,"glyphs","","",28,null],[12,"log_clusters","","",28,null],[12,"space","","",28,null],[3,"PangoGlyphVisAttr","","",null,null],[3,"PangoIncludedModule","","",null,null],[12,"list","","",29,null],[12,"init","","",29,null],[12,"exit","","",29,null],[12,"create","","",29,null],[3,"PangoItem","","",null,null],[12,"offset","","",30,null],[12,"length","","",30,null],[12,"num_chars","","",30,null],[12,"analysis","","",30,null],[3,"PangoLanguage","","",null,null],[3,"PangoLayoutClass","","",null,null],[3,"PangoLayoutIter","","",null,null],[3,"PangoLayoutLine","","",null,null],[12,"layout","","",31,null],[12,"start_index","","",31,null],[12,"length","","",31,null],[12,"runs","","",31,null],[3,"PangoLogAttr","","",null,null],[3,"PangoMap","","",null,null],[3,"PangoMapEntry","","",null,null],[3,"PangoMatrix","","",null,null],[12,"xx","","",32,null],[12,"xy","","",32,null],[12,"yx","","",32,null],[12,"yy","","",32,null],[12,"x0","","",32,null],[12,"y0","","",32,null],[3,"PangoRectangle","","",null,null],[12,"x","","",33,null],[12,"y","","",33,null],[12,"width","","",33,null],[12,"height","","",33,null],[3,"PangoRendererClass","","",null,null],[12,"parent_class","","",34,null],[12,"draw_glyphs","","",34,null],[12,"draw_rectangle","","",34,null],[12,"draw_error_underline","","",34,null],[12,"draw_shape","","",34,null],[12,"draw_trapezoid","","",34,null],[12,"draw_glyph","","",34,null],[12,"part_changed","","",34,null],[12,"begin","","",34,null],[12,"end","","",34,null],[12,"prepare_run","","",34,null],[12,"draw_glyph_item","","",34,null],[12,"_pango_reserved2","","",34,null],[12,"_pango_reserved3","","",34,null],[12,"_pango_reserved4","","",34,null],[3,"PangoRendererPrivate","","",null,null],[3,"PangoScriptForLang","","",null,null],[12,"lang","","",35,null],[12,"scripts","","",35,null],[3,"PangoScriptIter","","",null,null],[3,"PangoTabArray","","",null,null],[3,"PangoContext","","",null,null],[3,"PangoEngine","","",null,null],[12,"parent_instance","","",36,null],[3,"PangoEngineLang","","",null,null],[12,"parent_instance","","",37,null],[3,"PangoEngineShape","","",null,null],[12,"parent_instance","","",38,null],[3,"PangoFont","","",null,null],[12,"parent_instance","","",39,null],[3,"PangoFontFace","","",null,null],[12,"parent_instance","","",40,null],[3,"PangoFontFamily","","",null,null],[12,"parent_instance","","",41,null],[3,"PangoFontMap","","",null,null],[12,"parent_instance","","",42,null],[3,"PangoFontset","","",null,null],[12,"parent_instance","","",43,null],[3,"PangoFontsetSimple","","",null,null],[3,"PangoLayout","","",null,null],[3,"PangoRenderer","","",null,null],[12,"parent_instance","","",44,null],[12,"underline","","",44,null],[12,"strikethrough","","",44,null],[12,"active_count","","",44,null],[12,"matrix","","",44,null],[12,"priv_","","",44,null],[4,"PangoAlignment","","",null,null],[13,"Left","","",45,null],[13,"Center","","",45,null],[13,"Right","","",45,null],[4,"PangoAttrType","","",null,null],[13,"Invalid","","",46,null],[13,"Language","","",46,null],[13,"Family","","",46,null],[13,"Style","","",46,null],[13,"Weight","","",46,null],[13,"Variant","","",46,null],[13,"Stretch","","",46,null],[13,"Size","","",46,null],[13,"FontDesc","","",46,null],[13,"Foreground","","",46,null],[13,"Background","","",46,null],[13,"Underline","","",46,null],[13,"Strikethrough","","",46,null],[13,"Rise","","",46,null],[13,"Shape","","",46,null],[13,"Scale","","",46,null],[13,"Fallback","","",46,null],[13,"LetterSpacing","","",46,null],[13,"UnderlineColor","","",46,null],[13,"StrikethroughColor","","",46,null],[13,"AbsoluteSize","","",46,null],[13,"Gravity","","",46,null],[13,"GravityHint","","",46,null],[13,"FontFeatures","","",46,null],[13,"ForegroundAlpha","","",46,null],[13,"BackgroundAlpha","","",46,null],[4,"PangoBidiType","","",null,null],[13,"L","","",47,null],[13,"Lre","","",47,null],[13,"Lro","","",47,null],[13,"R","","",47,null],[13,"Al","","",47,null],[13,"Rle","","",47,null],[13,"Rlo","","",47,null],[13,"Pdf","","",47,null],[13,"En","","",47,null],[13,"Es","","",47,null],[13,"Et","","",47,null],[13,"An","","",47,null],[13,"Cs","","",47,null],[13,"Nsm","","",47,null],[13,"Bn","","",47,null],[13,"B","","",47,null],[13,"S","","",47,null],[13,"Ws","","",47,null],[13,"On","","",47,null],[4,"PangoCoverageLevel","","",null,null],[13,"None","","",48,null],[13,"Fallback","","",48,null],[13,"Approximate","","",48,null],[13,"Exact","","",48,null],[4,"PangoDirection","","",null,null],[13,"Ltr","","",49,null],[13,"Rtl","","",49,null],[13,"TtbLtr","","",49,null],[13,"TtbRtl","","",49,null],[13,"WeakLtr","","",49,null],[13,"WeakRtl","","",49,null],[13,"Neutral","","",49,null],[4,"PangoEllipsizeMode","","",null,null],[13,"None","","",50,null],[13,"Start","","",50,null],[13,"Middle","","",50,null],[13,"End","","",50,null],[4,"PangoGravity","","",null,null],[13,"South","","",51,null],[13,"East","","",51,null],[13,"North","","",51,null],[13,"West","","",51,null],[13,"Auto","","",51,null],[4,"PangoGravityHint","","",null,null],[13,"Natural","","",52,null],[13,"Strong","","",52,null],[13,"Line","","",52,null],[4,"PangoRenderPart","","",null,null],[13,"Foreground","","",53,null],[13,"Background","","",53,null],[13,"Underline","","",53,null],[13,"Strikethrough","","",53,null],[4,"PangoScript","","",null,null],[13,"InvalidCode","","",54,null],[13,"Common","","",54,null],[13,"Inherited","","",54,null],[13,"Arabic","","",54,null],[13,"Armenian","","",54,null],[13,"Bengali","","",54,null],[13,"Bopomofo","","",54,null],[13,"Cherokee","","",54,null],[13,"Coptic","","",54,null],[13,"Cyrillic","","",54,null],[13,"Deseret","","",54,null],[13,"Devanagari","","",54,null],[13,"Ethiopic","","",54,null],[13,"Georgian","","",54,null],[13,"Gothic","","",54,null],[13,"Greek","","",54,null],[13,"Gujarati","","",54,null],[13,"Gurmukhi","","",54,null],[13,"Han","","",54,null],[13,"Hangul","","",54,null],[13,"Hebrew","","",54,null],[13,"Hiragana","","",54,null],[13,"Kannada","","",54,null],[13,"Katakana","","",54,null],[13,"Khmer","","",54,null],[13,"Lao","","",54,null],[13,"Latin","","",54,null],[13,"Malayalam","","",54,null],[13,"Mongolian","","",54,null],[13,"Myanmar","","",54,null],[13,"Ogham","","",54,null],[13,"OldItalic","","",54,null],[13,"Oriya","","",54,null],[13,"Runic","","",54,null],[13,"Sinhala","","",54,null],[13,"Syriac","","",54,null],[13,"Tamil","","",54,null],[13,"Telugu","","",54,null],[13,"Thaana","","",54,null],[13,"Thai","","",54,null],[13,"Tibetan","","",54,null],[13,"CanadianAboriginal","","",54,null],[13,"Yi","","",54,null],[13,"Tagalog","","",54,null],[13,"Hanunoo","","",54,null],[13,"Buhid","","",54,null],[13,"Tagbanwa","","",54,null],[13,"Braille","","",54,null],[13,"Cypriot","","",54,null],[13,"Limbu","","",54,null],[13,"Osmanya","","",54,null],[13,"Shavian","","",54,null],[13,"LinearB","","",54,null],[13,"TaiLe","","",54,null],[13,"Ugaritic","","",54,null],[13,"NewTaiLue","","",54,null],[13,"Buginese","","",54,null],[13,"Glagolitic","","",54,null],[13,"Tifinagh","","",54,null],[13,"SylotiNagri","","",54,null],[13,"OldPersian","","",54,null],[13,"Kharoshthi","","",54,null],[13,"Unknown","","",54,null],[13,"Balinese","","",54,null],[13,"Cuneiform","","",54,null],[13,"Phoenician","","",54,null],[13,"PhagsPa","","",54,null],[13,"Nko","","",54,null],[13,"KayahLi","","",54,null],[13,"Lepcha","","",54,null],[13,"Rejang","","",54,null],[13,"Sundanese","","",54,null],[13,"Saurashtra","","",54,null],[13,"Cham","","",54,null],[13,"OlChiki","","",54,null],[13,"Vai","","",54,null],[13,"Carian","","",54,null],[13,"Lycian","","",54,null],[13,"Lydian","","",54,null],[13,"Batak","","",54,null],[13,"Brahmi","","",54,null],[13,"Mandaic","","",54,null],[13,"Chakma","","",54,null],[13,"MeroiticCursive","","",54,null],[13,"MeroiticHieroglyphs","","",54,null],[13,"Miao","","",54,null],[13,"Sharada","","",54,null],[13,"SoraSompeng","","",54,null],[13,"Takri","","",54,null],[13,"BassaVah","","",54,null],[13,"CaucasianAlbanian","","",54,null],[13,"Duployan","","",54,null],[13,"Elbasan","","",54,null],[13,"Grantha","","",54,null],[13,"Khojki","","",54,null],[13,"Khudawadi","","",54,null],[13,"LinearA","","",54,null],[13,"Mahajani","","",54,null],[13,"Manichaean","","",54,null],[13,"MendeKikakui","","",54,null],[13,"Modi","","",54,null],[13,"Mro","","",54,null],[13,"Nabataean","","",54,null],[13,"OldNorthArabian","","",54,null],[13,"OldPermic","","",54,null],[13,"PahawhHmong","","",54,null],[13,"Palmyrene","","",54,null],[13,"PauCinHau","","",54,null],[13,"PsalterPahlavi","","",54,null],[13,"Siddham","","",54,null],[13,"Tirhuta","","",54,null],[13,"WarangCiti","","",54,null],[13,"Ahom","","",54,null],[13,"AnatolianHieroglyphs","","",54,null],[13,"Hatran","","",54,null],[13,"Multani","","",54,null],[13,"OldHungarian","","",54,null],[13,"Signwriting","","",54,null],[4,"PangoStretch","","",null,null],[13,"UltraCondensed","","",55,null],[13,"ExtraCondensed","","",55,null],[13,"Condensed","","",55,null],[13,"SemiCondensed","","",55,null],[13,"Normal","","",55,null],[13,"SemiExpanded","","",55,null],[13,"Expanded","","",55,null],[13,"ExtraExpanded","","",55,null],[13,"UltraExpanded","","",55,null],[4,"PangoStyle","","",null,null],[13,"Normal","","",56,null],[13,"Oblique","","",56,null],[13,"Italic","","",56,null],[4,"PangoUnderline","","",null,null],[13,"None","","",57,null],[13,"Single","","",57,null],[13,"Double","","",57,null],[13,"Low","","",57,null],[13,"Error","","",57,null],[4,"PangoVariant","","",null,null],[13,"Normal","","",58,null],[13,"SmallCaps","","",58,null],[4,"PangoWeight","","",null,null],[13,"Thin","","",59,null],[13,"Ultralight","","",59,null],[13,"Light","","",59,null],[13,"Semilight","","",59,null],[13,"Book","","",59,null],[13,"Normal","","",59,null],[13,"Medium","","",59,null],[13,"Semibold","","",59,null],[13,"Bold","","",59,null],[13,"Ultrabold","","",59,null],[13,"Heavy","","",59,null],[13,"Ultraheavy","","",59,null],[4,"PangoWrapMode","","",null,null],[13,"Word","","",60,null],[13,"Char","","",60,null],[13,"WordChar","","",60,null],[5,"pango_attr_type_get_name","","",null,null],[5,"pango_attr_type_register","","",null,null],[5,"pango_bidi_type_for_unichar","","",null,null],[5,"pango_gravity_get_for_matrix","","",null,null],[5,"pango_gravity_get_for_script","","",null,null],[5,"pango_gravity_get_for_script_and_width","","",null,null],[5,"pango_gravity_to_rotation","","",null,null],[5,"pango_script_for_unichar","","",null,null],[5,"pango_script_get_sample_language","","",null,null],[5,"pango_attr_font_desc_new","","",null,null],[5,"pango_attr_iterator_copy","","",null,null],[5,"pango_attr_iterator_destroy","","",null,null],[5,"pango_attr_iterator_get","","",null,null],[5,"pango_attr_iterator_get_attrs","","",null,null],[5,"pango_attr_iterator_get_font","","",null,null],[5,"pango_attr_iterator_next","","",null,null],[5,"pango_attr_iterator_range","","",null,null],[5,"pango_attr_language_new","","",null,null],[5,"pango_attr_list_get_type","","",null,null],[5,"pango_attr_list_new","","",null,null],[5,"pango_attr_list_change","","",null,null],[5,"pango_attr_list_copy","","",null,null],[5,"pango_attr_list_filter","","",null,null],[5,"pango_attr_list_get_iterator","","",null,null],[5,"pango_attr_list_insert","","",null,null],[5,"pango_attr_list_insert_before","","",null,null],[5,"pango_attr_list_ref","","",null,null],[5,"pango_attr_list_splice","","",null,null],[5,"pango_attr_list_unref","","",null,null],[5,"pango_attr_shape_new","","",null,null],[5,"pango_attr_shape_new_with_data","","",null,null],[5,"pango_attr_size_new","","",null,null],[5,"pango_attr_size_new_absolute","","",null,null],[5,"pango_attribute_copy","","",null,null],[5,"pango_attribute_destroy","","",null,null],[5,"pango_attribute_equal","","",null,null],[5,"pango_attribute_init","","",null,null],[5,"pango_color_get_type","","",null,null],[5,"pango_color_copy","","",null,null],[5,"pango_color_free","","",null,null],[5,"pango_color_parse","","",null,null],[5,"pango_color_to_string","","",null,null],[5,"pango_coverage_copy","","",null,null],[5,"pango_coverage_get","","",null,null],[5,"pango_coverage_max","","",null,null],[5,"pango_coverage_ref","","",null,null],[5,"pango_coverage_set","","",null,null],[5,"pango_coverage_to_bytes","","",null,null],[5,"pango_coverage_unref","","",null,null],[5,"pango_coverage_from_bytes","","",null,null],[5,"pango_coverage_new","","",null,null],[5,"pango_font_description_get_type","","",null,null],[5,"pango_font_description_new","","",null,null],[5,"pango_font_description_better_match","","",null,null],[5,"pango_font_description_copy","","",null,null],[5,"pango_font_description_copy_static","","",null,null],[5,"pango_font_description_equal","","",null,null],[5,"pango_font_description_free","","",null,null],[5,"pango_font_description_get_family","","",null,null],[5,"pango_font_description_get_gravity","","",null,null],[5,"pango_font_description_get_set_fields","","",null,null],[5,"pango_font_description_get_size","","",null,null],[5,"pango_font_description_get_size_is_absolute","","",null,null],[5,"pango_font_description_get_stretch","","",null,null],[5,"pango_font_description_get_style","","",null,null],[5,"pango_font_description_get_variant","","",null,null],[5,"pango_font_description_get_weight","","",null,null],[5,"pango_font_description_hash","","",null,null],[5,"pango_font_description_merge","","",null,null],[5,"pango_font_description_merge_static","","",null,null],[5,"pango_font_description_set_absolute_size","","",null,null],[5,"pango_font_description_set_family","","",null,null],[5,"pango_font_description_set_family_static","","",null,null],[5,"pango_font_description_set_gravity","","",null,null],[5,"pango_font_description_set_size","","",null,null],[5,"pango_font_description_set_stretch","","",null,null],[5,"pango_font_description_set_style","","",null,null],[5,"pango_font_description_set_variant","","",null,null],[5,"pango_font_description_set_weight","","",null,null],[5,"pango_font_description_to_filename","","",null,null],[5,"pango_font_description_to_string","","",null,null],[5,"pango_font_description_unset_fields","","",null,null],[5,"pango_font_description_from_string","","",null,null],[5,"pango_font_metrics_get_type","","",null,null],[5,"pango_font_metrics_new","","",null,null],[5,"pango_font_metrics_get_approximate_char_width","","",null,null],[5,"pango_font_metrics_get_approximate_digit_width","","",null,null],[5,"pango_font_metrics_get_ascent","","",null,null],[5,"pango_font_metrics_get_descent","","",null,null],[5,"pango_font_metrics_get_strikethrough_position","","",null,null],[5,"pango_font_metrics_get_strikethrough_thickness","","",null,null],[5,"pango_font_metrics_get_underline_position","","",null,null],[5,"pango_font_metrics_get_underline_thickness","","",null,null],[5,"pango_font_metrics_ref","","",null,null],[5,"pango_font_metrics_unref","","",null,null],[5,"pango_glyph_item_get_type","","",null,null],[5,"pango_glyph_item_apply_attrs","","",null,null],[5,"pango_glyph_item_copy","","",null,null],[5,"pango_glyph_item_free","","",null,null],[5,"pango_glyph_item_get_logical_widths","","",null,null],[5,"pango_glyph_item_letter_space","","",null,null],[5,"pango_glyph_item_split","","",null,null],[5,"pango_glyph_item_iter_get_type","","",null,null],[5,"pango_glyph_item_iter_copy","","",null,null],[5,"pango_glyph_item_iter_free","","",null,null],[5,"pango_glyph_item_iter_init_end","","",null,null],[5,"pango_glyph_item_iter_init_start","","",null,null],[5,"pango_glyph_item_iter_next_cluster","","",null,null],[5,"pango_glyph_item_iter_prev_cluster","","",null,null],[5,"pango_glyph_string_get_type","","",null,null],[5,"pango_glyph_string_new","","",null,null],[5,"pango_glyph_string_copy","","",null,null],[5,"pango_glyph_string_extents","","",null,null],[5,"pango_glyph_string_extents_range","","",null,null],[5,"pango_glyph_string_free","","",null,null],[5,"pango_glyph_string_get_logical_widths","","",null,null],[5,"pango_glyph_string_get_width","","",null,null],[5,"pango_glyph_string_index_to_x","","",null,null],[5,"pango_glyph_string_set_size","","",null,null],[5,"pango_glyph_string_x_to_index","","",null,null],[5,"pango_item_get_type","","",null,null],[5,"pango_item_new","","",null,null],[5,"pango_item_copy","","",null,null],[5,"pango_item_free","","",null,null],[5,"pango_item_split","","",null,null],[5,"pango_language_get_type","","",null,null],[5,"pango_language_get_sample_string","","",null,null],[5,"pango_language_get_scripts","","",null,null],[5,"pango_language_includes_script","","",null,null],[5,"pango_language_matches","","",null,null],[5,"pango_language_to_string","","",null,null],[5,"pango_language_from_string","","",null,null],[5,"pango_language_get_default","","",null,null],[5,"pango_layout_iter_get_type","","",null,null],[5,"pango_layout_iter_at_last_line","","",null,null],[5,"pango_layout_iter_copy","","",null,null],[5,"pango_layout_iter_free","","",null,null],[5,"pango_layout_iter_get_baseline","","",null,null],[5,"pango_layout_iter_get_char_extents","","",null,null],[5,"pango_layout_iter_get_cluster_extents","","",null,null],[5,"pango_layout_iter_get_index","","",null,null],[5,"pango_layout_iter_get_layout","","",null,null],[5,"pango_layout_iter_get_layout_extents","","",null,null],[5,"pango_layout_iter_get_line","","",null,null],[5,"pango_layout_iter_get_line_extents","","",null,null],[5,"pango_layout_iter_get_line_readonly","","",null,null],[5,"pango_layout_iter_get_line_yrange","","",null,null],[5,"pango_layout_iter_get_run","","",null,null],[5,"pango_layout_iter_get_run_extents","","",null,null],[5,"pango_layout_iter_get_run_readonly","","",null,null],[5,"pango_layout_iter_next_char","","",null,null],[5,"pango_layout_iter_next_cluster","","",null,null],[5,"pango_layout_iter_next_line","","",null,null],[5,"pango_layout_iter_next_run","","",null,null],[5,"pango_layout_line_get_type","","",null,null],[5,"pango_layout_line_get_extents","","",null,null],[5,"pango_layout_line_get_pixel_extents","","",null,null],[5,"pango_layout_line_get_x_ranges","","",null,null],[5,"pango_layout_line_index_to_x","","",null,null],[5,"pango_layout_line_ref","","",null,null],[5,"pango_layout_line_unref","","",null,null],[5,"pango_layout_line_x_to_index","","",null,null],[5,"pango_map_get_engine","","",null,null],[5,"pango_map_get_engines","","",null,null],[5,"pango_matrix_get_type","","",null,null],[5,"pango_matrix_concat","","",null,null],[5,"pango_matrix_copy","","",null,null],[5,"pango_matrix_free","","",null,null],[5,"pango_matrix_get_font_scale_factor","","",null,null],[5,"pango_matrix_rotate","","",null,null],[5,"pango_matrix_scale","","",null,null],[5,"pango_matrix_transform_distance","","",null,null],[5,"pango_matrix_transform_pixel_rectangle","","",null,null],[5,"pango_matrix_transform_point","","",null,null],[5,"pango_matrix_transform_rectangle","","",null,null],[5,"pango_matrix_translate","","",null,null],[5,"pango_script_iter_free","","",null,null],[5,"pango_script_iter_get_range","","",null,null],[5,"pango_script_iter_next","","",null,null],[5,"pango_script_iter_new","","",null,null],[5,"pango_tab_array_get_type","","",null,null],[5,"pango_tab_array_new","","",null,null],[5,"pango_tab_array_new_with_positions","","",null,null],[5,"pango_tab_array_copy","","",null,null],[5,"pango_tab_array_free","","",null,null],[5,"pango_tab_array_get_positions_in_pixels","","",null,null],[5,"pango_tab_array_get_size","","",null,null],[5,"pango_tab_array_get_tab","","",null,null],[5,"pango_tab_array_get_tabs","","",null,null],[5,"pango_tab_array_resize","","",null,null],[5,"pango_tab_array_set_tab","","",null,null],[5,"pango_context_get_type","","",null,null],[5,"pango_context_new","","",null,null],[5,"pango_context_changed","","",null,null],[5,"pango_context_get_base_dir","","",null,null],[5,"pango_context_get_base_gravity","","",null,null],[5,"pango_context_get_font_description","","",null,null],[5,"pango_context_get_font_map","","",null,null],[5,"pango_context_get_gravity","","",null,null],[5,"pango_context_get_gravity_hint","","",null,null],[5,"pango_context_get_language","","",null,null],[5,"pango_context_get_matrix","","",null,null],[5,"pango_context_get_metrics","","",null,null],[5,"pango_context_get_serial","","",null,null],[5,"pango_context_list_families","","",null,null],[5,"pango_context_load_font","","",null,null],[5,"pango_context_load_fontset","","",null,null],[5,"pango_context_set_base_dir","","",null,null],[5,"pango_context_set_base_gravity","","",null,null],[5,"pango_context_set_font_description","","",null,null],[5,"pango_context_set_font_map","","",null,null],[5,"pango_context_set_gravity_hint","","",null,null],[5,"pango_context_set_language","","",null,null],[5,"pango_context_set_matrix","","",null,null],[5,"pango_engine_get_type","","",null,null],[5,"pango_engine_lang_get_type","","",null,null],[5,"pango_engine_shape_get_type","","",null,null],[5,"pango_font_get_type","","",null,null],[5,"pango_font_descriptions_free","","",null,null],[5,"pango_font_describe","","",null,null],[5,"pango_font_describe_with_absolute_size","","",null,null],[5,"pango_font_find_shaper","","",null,null],[5,"pango_font_get_coverage","","",null,null],[5,"pango_font_get_font_map","","",null,null],[5,"pango_font_get_glyph_extents","","",null,null],[5,"pango_font_get_metrics","","",null,null],[5,"pango_font_face_get_type","","",null,null],[5,"pango_font_face_describe","","",null,null],[5,"pango_font_face_get_face_name","","",null,null],[5,"pango_font_face_is_synthesized","","",null,null],[5,"pango_font_face_list_sizes","","",null,null],[5,"pango_font_family_get_type","","",null,null],[5,"pango_font_family_get_name","","",null,null],[5,"pango_font_family_is_monospace","","",null,null],[5,"pango_font_family_list_faces","","",null,null],[5,"pango_font_map_get_type","","",null,null],[5,"pango_font_map_changed","","",null,null],[5,"pango_font_map_create_context","","",null,null],[5,"pango_font_map_get_serial","","",null,null],[5,"pango_font_map_get_shape_engine_type","","",null,null],[5,"pango_font_map_list_families","","",null,null],[5,"pango_font_map_load_font","","",null,null],[5,"pango_font_map_load_fontset","","",null,null],[5,"pango_fontset_get_type","","",null,null],[5,"pango_fontset_foreach","","",null,null],[5,"pango_fontset_get_font","","",null,null],[5,"pango_fontset_get_metrics","","",null,null],[5,"pango_fontset_simple_get_type","","",null,null],[5,"pango_fontset_simple_new","","",null,null],[5,"pango_fontset_simple_append","","",null,null],[5,"pango_fontset_simple_size","","",null,null],[5,"pango_layout_get_type","","",null,null],[5,"pango_layout_new","","",null,null],[5,"pango_layout_context_changed","","",null,null],[5,"pango_layout_copy","","",null,null],[5,"pango_layout_get_alignment","","",null,null],[5,"pango_layout_get_attributes","","",null,null],[5,"pango_layout_get_auto_dir","","",null,null],[5,"pango_layout_get_baseline","","",null,null],[5,"pango_layout_get_character_count","","",null,null],[5,"pango_layout_get_context","","",null,null],[5,"pango_layout_get_cursor_pos","","",null,null],[5,"pango_layout_get_ellipsize","","",null,null],[5,"pango_layout_get_extents","","",null,null],[5,"pango_layout_get_font_description","","",null,null],[5,"pango_layout_get_height","","",null,null],[5,"pango_layout_get_indent","","",null,null],[5,"pango_layout_get_iter","","",null,null],[5,"pango_layout_get_justify","","",null,null],[5,"pango_layout_get_line","","",null,null],[5,"pango_layout_get_line_count","","",null,null],[5,"pango_layout_get_line_readonly","","",null,null],[5,"pango_layout_get_lines","","",null,null],[5,"pango_layout_get_lines_readonly","","",null,null],[5,"pango_layout_get_log_attrs","","",null,null],[5,"pango_layout_get_log_attrs_readonly","","",null,null],[5,"pango_layout_get_pixel_extents","","",null,null],[5,"pango_layout_get_pixel_size","","",null,null],[5,"pango_layout_get_serial","","",null,null],[5,"pango_layout_get_single_paragraph_mode","","",null,null],[5,"pango_layout_get_size","","",null,null],[5,"pango_layout_get_spacing","","",null,null],[5,"pango_layout_get_tabs","","",null,null],[5,"pango_layout_get_text","","",null,null],[5,"pango_layout_get_unknown_glyphs_count","","",null,null],[5,"pango_layout_get_width","","",null,null],[5,"pango_layout_get_wrap","","",null,null],[5,"pango_layout_index_to_line_x","","",null,null],[5,"pango_layout_index_to_pos","","",null,null],[5,"pango_layout_is_ellipsized","","",null,null],[5,"pango_layout_is_wrapped","","",null,null],[5,"pango_layout_move_cursor_visually","","",null,null],[5,"pango_layout_set_alignment","","",null,null],[5,"pango_layout_set_attributes","","",null,null],[5,"pango_layout_set_auto_dir","","",null,null],[5,"pango_layout_set_ellipsize","","",null,null],[5,"pango_layout_set_font_description","","",null,null],[5,"pango_layout_set_height","","",null,null],[5,"pango_layout_set_indent","","",null,null],[5,"pango_layout_set_justify","","",null,null],[5,"pango_layout_set_markup","","",null,null],[5,"pango_layout_set_markup_with_accel","","",null,null],[5,"pango_layout_set_single_paragraph_mode","","",null,null],[5,"pango_layout_set_spacing","","",null,null],[5,"pango_layout_set_tabs","","",null,null],[5,"pango_layout_set_text","","",null,null],[5,"pango_layout_set_width","","",null,null],[5,"pango_layout_set_wrap","","",null,null],[5,"pango_layout_xy_to_index","","",null,null],[5,"pango_renderer_get_type","","",null,null],[5,"pango_renderer_activate","","",null,null],[5,"pango_renderer_deactivate","","",null,null],[5,"pango_renderer_draw_error_underline","","",null,null],[5,"pango_renderer_draw_glyph","","",null,null],[5,"pango_renderer_draw_glyph_item","","",null,null],[5,"pango_renderer_draw_glyphs","","",null,null],[5,"pango_renderer_draw_layout","","",null,null],[5,"pango_renderer_draw_layout_line","","",null,null],[5,"pango_renderer_draw_rectangle","","",null,null],[5,"pango_renderer_draw_trapezoid","","",null,null],[5,"pango_renderer_get_color","","",null,null],[5,"pango_renderer_get_layout","","",null,null],[5,"pango_renderer_get_layout_line","","",null,null],[5,"pango_renderer_get_matrix","","",null,null],[5,"pango_renderer_part_changed","","",null,null],[5,"pango_renderer_set_color","","",null,null],[5,"pango_renderer_set_matrix","","",null,null],[5,"pango_attr_background_new","","",null,null],[5,"pango_attr_fallback_new","","",null,null],[5,"pango_attr_family_new","","",null,null],[5,"pango_attr_foreground_new","","",null,null],[5,"pango_attr_gravity_hint_new","","",null,null],[5,"pango_attr_gravity_new","","",null,null],[5,"pango_attr_letter_spacing_new","","",null,null],[5,"pango_attr_rise_new","","",null,null],[5,"pango_attr_scale_new","","",null,null],[5,"pango_attr_stretch_new","","",null,null],[5,"pango_attr_strikethrough_color_new","","",null,null],[5,"pango_attr_strikethrough_new","","",null,null],[5,"pango_attr_style_new","","",null,null],[5,"pango_attr_underline_color_new","","",null,null],[5,"pango_attr_underline_new","","",null,null],[5,"pango_attr_variant_new","","",null,null],[5,"pango_attr_weight_new","","",null,null],[5,"pango_break","","",null,null],[5,"pango_config_key_get","","",null,null],[5,"pango_config_key_get_system","","",null,null],[5,"pango_default_break","","",null,null],[5,"pango_extents_to_pixels","","",null,null],[5,"pango_find_base_dir","","",null,null],[5,"pango_find_map","","",null,null],[5,"pango_find_paragraph_boundary","","",null,null],[5,"pango_get_lib_subdirectory","","",null,null],[5,"pango_get_log_attrs","","",null,null],[5,"pango_get_mirror_char","","",null,null],[5,"pango_get_sysconf_subdirectory","","",null,null],[5,"pango_is_zero_width","","",null,null],[5,"pango_itemize","","",null,null],[5,"pango_itemize_with_base_dir","","",null,null],[5,"pango_log2vis_get_embedding_levels","","",null,null],[5,"pango_lookup_aliases","","",null,null],[5,"pango_markup_parser_finish","","",null,null],[5,"pango_markup_parser_new","","",null,null],[5,"pango_module_register","","",null,null],[5,"pango_parse_enum","","",null,null],[5,"pango_parse_markup","","",null,null],[5,"pango_parse_stretch","","",null,null],[5,"pango_parse_style","","",null,null],[5,"pango_parse_variant","","",null,null],[5,"pango_parse_weight","","",null,null],[5,"pango_quantize_line_geometry","","",null,null],[5,"pango_read_line","","",null,null],[5,"pango_reorder_items","","",null,null],[5,"pango_scan_int","","",null,null],[5,"pango_scan_string","","",null,null],[5,"pango_scan_word","","",null,null],[5,"pango_shape","","",null,null],[5,"pango_shape_full","","",null,null],[5,"pango_skip_space","","",null,null],[5,"pango_split_file_list","","",null,null],[5,"pango_trim_string","","",null,null],[5,"pango_unichar_direction","","",null,null],[5,"pango_units_from_double","","",null,null],[5,"pango_units_to_double","","",null,null],[5,"pango_version","","",null,null],[5,"pango_version_check","","",null,null],[5,"pango_version_string","","",null,null],[6,"PangoGlyph","","",null,null],[6,"PangoGlyphUnit","","",null,null],[6,"PangoLayoutRun","","",null,null],[6,"TabAlign","","",null,null],[6,"PangoTabAlign","","",null,null],[6,"PangoAttrDataCopyFunc","","",null,null],[6,"PangoAttrFilterFunc","","",null,null],[6,"PangoFontsetForeachFunc","","",null,null],[17,"PANGO_ALIGN_LEFT","","",null,null],[17,"PANGO_ALIGN_CENTER","","",null,null],[17,"PANGO_ALIGN_RIGHT","","",null,null],[17,"PANGO_ATTR_INVALID","","",null,null],[17,"PANGO_ATTR_LANGUAGE","","",null,null],[17,"PANGO_ATTR_FAMILY","","",null,null],[17,"PANGO_ATTR_STYLE","","",null,null],[17,"PANGO_ATTR_WEIGHT","","",null,null],[17,"PANGO_ATTR_VARIANT","","",null,null],[17,"PANGO_ATTR_STRETCH","","",null,null],[17,"PANGO_ATTR_SIZE","","",null,null],[17,"PANGO_ATTR_FONT_DESC","","",null,null],[17,"PANGO_ATTR_FOREGROUND","","",null,null],[17,"PANGO_ATTR_BACKGROUND","","",null,null],[17,"PANGO_ATTR_UNDERLINE","","",null,null],[17,"PANGO_ATTR_STRIKETHROUGH","","",null,null],[17,"PANGO_ATTR_RISE","","",null,null],[17,"PANGO_ATTR_SHAPE","","",null,null],[17,"PANGO_ATTR_SCALE","","",null,null],[17,"PANGO_ATTR_FALLBACK","","",null,null],[17,"PANGO_ATTR_LETTER_SPACING","","",null,null],[17,"PANGO_ATTR_UNDERLINE_COLOR","","",null,null],[17,"PANGO_ATTR_STRIKETHROUGH_COLOR","","",null,null],[17,"PANGO_ATTR_ABSOLUTE_SIZE","","",null,null],[17,"PANGO_ATTR_GRAVITY","","",null,null],[17,"PANGO_ATTR_GRAVITY_HINT","","",null,null],[17,"PANGO_ATTR_FONT_FEATURES","","",null,null],[17,"PANGO_ATTR_FOREGROUND_ALPHA","","",null,null],[17,"PANGO_ATTR_BACKGROUND_ALPHA","","",null,null],[17,"PANGO_BIDI_TYPE_L","","",null,null],[17,"PANGO_BIDI_TYPE_LRE","","",null,null],[17,"PANGO_BIDI_TYPE_LRO","","",null,null],[17,"PANGO_BIDI_TYPE_R","","",null,null],[17,"PANGO_BIDI_TYPE_AL","","",null,null],[17,"PANGO_BIDI_TYPE_RLE","","",null,null],[17,"PANGO_BIDI_TYPE_RLO","","",null,null],[17,"PANGO_BIDI_TYPE_PDF","","",null,null],[17,"PANGO_BIDI_TYPE_EN","","",null,null],[17,"PANGO_BIDI_TYPE_ES","","",null,null],[17,"PANGO_BIDI_TYPE_ET","","",null,null],[17,"PANGO_BIDI_TYPE_AN","","",null,null],[17,"PANGO_BIDI_TYPE_CS","","",null,null],[17,"PANGO_BIDI_TYPE_NSM","","",null,null],[17,"PANGO_BIDI_TYPE_BN","","",null,null],[17,"PANGO_BIDI_TYPE_B","","",null,null],[17,"PANGO_BIDI_TYPE_S","","",null,null],[17,"PANGO_BIDI_TYPE_WS","","",null,null],[17,"PANGO_BIDI_TYPE_ON","","",null,null],[17,"PANGO_COVERAGE_NONE","","",null,null],[17,"PANGO_COVERAGE_FALLBACK","","",null,null],[17,"PANGO_COVERAGE_APPROXIMATE","","",null,null],[17,"PANGO_COVERAGE_EXACT","","",null,null],[17,"PANGO_DIRECTION_LTR","","",null,null],[17,"PANGO_DIRECTION_RTL","","",null,null],[17,"PANGO_DIRECTION_TTB_LTR","","",null,null],[17,"PANGO_DIRECTION_TTB_RTL","","",null,null],[17,"PANGO_DIRECTION_WEAK_LTR","","",null,null],[17,"PANGO_DIRECTION_WEAK_RTL","","",null,null],[17,"PANGO_DIRECTION_NEUTRAL","","",null,null],[17,"PANGO_ELLIPSIZE_NONE","","",null,null],[17,"PANGO_ELLIPSIZE_START","","",null,null],[17,"PANGO_ELLIPSIZE_MIDDLE","","",null,null],[17,"PANGO_ELLIPSIZE_END","","",null,null],[17,"PANGO_GRAVITY_SOUTH","","",null,null],[17,"PANGO_GRAVITY_EAST","","",null,null],[17,"PANGO_GRAVITY_NORTH","","",null,null],[17,"PANGO_GRAVITY_WEST","","",null,null],[17,"PANGO_GRAVITY_AUTO","","",null,null],[17,"PANGO_GRAVITY_HINT_NATURAL","","",null,null],[17,"PANGO_GRAVITY_HINT_STRONG","","",null,null],[17,"PANGO_GRAVITY_HINT_LINE","","",null,null],[17,"PANGO_RENDER_PART_FOREGROUND","","",null,null],[17,"PANGO_RENDER_PART_BACKGROUND","","",null,null],[17,"PANGO_RENDER_PART_UNDERLINE","","",null,null],[17,"PANGO_RENDER_PART_STRIKETHROUGH","","",null,null],[17,"PANGO_SCRIPT_INVALID_CODE","","",null,null],[17,"PANGO_SCRIPT_COMMON","","",null,null],[17,"PANGO_SCRIPT_INHERITED","","",null,null],[17,"PANGO_SCRIPT_ARABIC","","",null,null],[17,"PANGO_SCRIPT_ARMENIAN","","",null,null],[17,"PANGO_SCRIPT_BENGALI","","",null,null],[17,"PANGO_SCRIPT_BOPOMOFO","","",null,null],[17,"PANGO_SCRIPT_CHEROKEE","","",null,null],[17,"PANGO_SCRIPT_COPTIC","","",null,null],[17,"PANGO_SCRIPT_CYRILLIC","","",null,null],[17,"PANGO_SCRIPT_DESERET","","",null,null],[17,"PANGO_SCRIPT_DEVANAGARI","","",null,null],[17,"PANGO_SCRIPT_ETHIOPIC","","",null,null],[17,"PANGO_SCRIPT_GEORGIAN","","",null,null],[17,"PANGO_SCRIPT_GOTHIC","","",null,null],[17,"PANGO_SCRIPT_GREEK","","",null,null],[17,"PANGO_SCRIPT_GUJARATI","","",null,null],[17,"PANGO_SCRIPT_GURMUKHI","","",null,null],[17,"PANGO_SCRIPT_HAN","","",null,null],[17,"PANGO_SCRIPT_HANGUL","","",null,null],[17,"PANGO_SCRIPT_HEBREW","","",null,null],[17,"PANGO_SCRIPT_HIRAGANA","","",null,null],[17,"PANGO_SCRIPT_KANNADA","","",null,null],[17,"PANGO_SCRIPT_KATAKANA","","",null,null],[17,"PANGO_SCRIPT_KHMER","","",null,null],[17,"PANGO_SCRIPT_LAO","","",null,null],[17,"PANGO_SCRIPT_LATIN","","",null,null],[17,"PANGO_SCRIPT_MALAYALAM","","",null,null],[17,"PANGO_SCRIPT_MONGOLIAN","","",null,null],[17,"PANGO_SCRIPT_MYANMAR","","",null,null],[17,"PANGO_SCRIPT_OGHAM","","",null,null],[17,"PANGO_SCRIPT_OLD_ITALIC","","",null,null],[17,"PANGO_SCRIPT_ORIYA","","",null,null],[17,"PANGO_SCRIPT_RUNIC","","",null,null],[17,"PANGO_SCRIPT_SINHALA","","",null,null],[17,"PANGO_SCRIPT_SYRIAC","","",null,null],[17,"PANGO_SCRIPT_TAMIL","","",null,null],[17,"PANGO_SCRIPT_TELUGU","","",null,null],[17,"PANGO_SCRIPT_THAANA","","",null,null],[17,"PANGO_SCRIPT_THAI","","",null,null],[17,"PANGO_SCRIPT_TIBETAN","","",null,null],[17,"PANGO_SCRIPT_CANADIAN_ABORIGINAL","","",null,null],[17,"PANGO_SCRIPT_YI","","",null,null],[17,"PANGO_SCRIPT_TAGALOG","","",null,null],[17,"PANGO_SCRIPT_HANUNOO","","",null,null],[17,"PANGO_SCRIPT_BUHID","","",null,null],[17,"PANGO_SCRIPT_TAGBANWA","","",null,null],[17,"PANGO_SCRIPT_BRAILLE","","",null,null],[17,"PANGO_SCRIPT_CYPRIOT","","",null,null],[17,"PANGO_SCRIPT_LIMBU","","",null,null],[17,"PANGO_SCRIPT_OSMANYA","","",null,null],[17,"PANGO_SCRIPT_SHAVIAN","","",null,null],[17,"PANGO_SCRIPT_LINEAR_B","","",null,null],[17,"PANGO_SCRIPT_TAI_LE","","",null,null],[17,"PANGO_SCRIPT_UGARITIC","","",null,null],[17,"PANGO_SCRIPT_NEW_TAI_LUE","","",null,null],[17,"PANGO_SCRIPT_BUGINESE","","",null,null],[17,"PANGO_SCRIPT_GLAGOLITIC","","",null,null],[17,"PANGO_SCRIPT_TIFINAGH","","",null,null],[17,"PANGO_SCRIPT_SYLOTI_NAGRI","","",null,null],[17,"PANGO_SCRIPT_OLD_PERSIAN","","",null,null],[17,"PANGO_SCRIPT_KHAROSHTHI","","",null,null],[17,"PANGO_SCRIPT_UNKNOWN","","",null,null],[17,"PANGO_SCRIPT_BALINESE","","",null,null],[17,"PANGO_SCRIPT_CUNEIFORM","","",null,null],[17,"PANGO_SCRIPT_PHOENICIAN","","",null,null],[17,"PANGO_SCRIPT_PHAGS_PA","","",null,null],[17,"PANGO_SCRIPT_NKO","","",null,null],[17,"PANGO_SCRIPT_KAYAH_LI","","",null,null],[17,"PANGO_SCRIPT_LEPCHA","","",null,null],[17,"PANGO_SCRIPT_REJANG","","",null,null],[17,"PANGO_SCRIPT_SUNDANESE","","",null,null],[17,"PANGO_SCRIPT_SAURASHTRA","","",null,null],[17,"PANGO_SCRIPT_CHAM","","",null,null],[17,"PANGO_SCRIPT_OL_CHIKI","","",null,null],[17,"PANGO_SCRIPT_VAI","","",null,null],[17,"PANGO_SCRIPT_CARIAN","","",null,null],[17,"PANGO_SCRIPT_LYCIAN","","",null,null],[17,"PANGO_SCRIPT_LYDIAN","","",null,null],[17,"PANGO_SCRIPT_BATAK","","",null,null],[17,"PANGO_SCRIPT_BRAHMI","","",null,null],[17,"PANGO_SCRIPT_MANDAIC","","",null,null],[17,"PANGO_SCRIPT_CHAKMA","","",null,null],[17,"PANGO_SCRIPT_MEROITIC_CURSIVE","","",null,null],[17,"PANGO_SCRIPT_MEROITIC_HIEROGLYPHS","","",null,null],[17,"PANGO_SCRIPT_MIAO","","",null,null],[17,"PANGO_SCRIPT_SHARADA","","",null,null],[17,"PANGO_SCRIPT_SORA_SOMPENG","","",null,null],[17,"PANGO_SCRIPT_TAKRI","","",null,null],[17,"PANGO_SCRIPT_BASSA_VAH","","",null,null],[17,"PANGO_SCRIPT_CAUCASIAN_ALBANIAN","","",null,null],[17,"PANGO_SCRIPT_DUPLOYAN","","",null,null],[17,"PANGO_SCRIPT_ELBASAN","","",null,null],[17,"PANGO_SCRIPT_GRANTHA","","",null,null],[17,"PANGO_SCRIPT_KHOJKI","","",null,null],[17,"PANGO_SCRIPT_KHUDAWADI","","",null,null],[17,"PANGO_SCRIPT_LINEAR_A","","",null,null],[17,"PANGO_SCRIPT_MAHAJANI","","",null,null],[17,"PANGO_SCRIPT_MANICHAEAN","","",null,null],[17,"PANGO_SCRIPT_MENDE_KIKAKUI","","",null,null],[17,"PANGO_SCRIPT_MODI","","",null,null],[17,"PANGO_SCRIPT_MRO","","",null,null],[17,"PANGO_SCRIPT_NABATAEAN","","",null,null],[17,"PANGO_SCRIPT_OLD_NORTH_ARABIAN","","",null,null],[17,"PANGO_SCRIPT_OLD_PERMIC","","",null,null],[17,"PANGO_SCRIPT_PAHAWH_HMONG","","",null,null],[17,"PANGO_SCRIPT_PALMYRENE","","",null,null],[17,"PANGO_SCRIPT_PAU_CIN_HAU","","",null,null],[17,"PANGO_SCRIPT_PSALTER_PAHLAVI","","",null,null],[17,"PANGO_SCRIPT_SIDDHAM","","",null,null],[17,"PANGO_SCRIPT_TIRHUTA","","",null,null],[17,"PANGO_SCRIPT_WARANG_CITI","","",null,null],[17,"PANGO_SCRIPT_AHOM","","",null,null],[17,"PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS","","",null,null],[17,"PANGO_SCRIPT_HATRAN","","",null,null],[17,"PANGO_SCRIPT_MULTANI","","",null,null],[17,"PANGO_SCRIPT_OLD_HUNGARIAN","","",null,null],[17,"PANGO_SCRIPT_SIGNWRITING","","",null,null],[17,"PANGO_STRETCH_ULTRA_CONDENSED","","",null,null],[17,"PANGO_STRETCH_EXTRA_CONDENSED","","",null,null],[17,"PANGO_STRETCH_CONDENSED","","",null,null],[17,"PANGO_STRETCH_SEMI_CONDENSED","","",null,null],[17,"PANGO_STRETCH_NORMAL","","",null,null],[17,"PANGO_STRETCH_SEMI_EXPANDED","","",null,null],[17,"PANGO_STRETCH_EXPANDED","","",null,null],[17,"PANGO_STRETCH_EXTRA_EXPANDED","","",null,null],[17,"PANGO_STRETCH_ULTRA_EXPANDED","","",null,null],[17,"PANGO_STYLE_NORMAL","","",null,null],[17,"PANGO_STYLE_OBLIQUE","","",null,null],[17,"PANGO_STYLE_ITALIC","","",null,null],[17,"PANGO_TAB_LEFT","","",null,null],[17,"PANGO_UNDERLINE_NONE","","",null,null],[17,"PANGO_UNDERLINE_SINGLE","","",null,null],[17,"PANGO_UNDERLINE_DOUBLE","","",null,null],[17,"PANGO_UNDERLINE_LOW","","",null,null],[17,"PANGO_UNDERLINE_ERROR","","",null,null],[17,"PANGO_VARIANT_NORMAL","","",null,null],[17,"PANGO_VARIANT_SMALL_CAPS","","",null,null],[17,"PANGO_WEIGHT_THIN","","",null,null],[17,"PANGO_WEIGHT_ULTRALIGHT","","",null,null],[17,"PANGO_WEIGHT_LIGHT","","",null,null],[17,"PANGO_WEIGHT_SEMILIGHT","","",null,null],[17,"PANGO_WEIGHT_BOOK","","",null,null],[17,"PANGO_WEIGHT_NORMAL","","",null,null],[17,"PANGO_WEIGHT_MEDIUM","","",null,null],[17,"PANGO_WEIGHT_SEMIBOLD","","",null,null],[17,"PANGO_WEIGHT_BOLD","","",null,null],[17,"PANGO_WEIGHT_ULTRABOLD","","",null,null],[17,"PANGO_WEIGHT_HEAVY","","",null,null],[17,"PANGO_WEIGHT_ULTRAHEAVY","","",null,null],[17,"PANGO_WRAP_WORD","","",null,null],[17,"PANGO_WRAP_CHAR","","",null,null],[17,"PANGO_WRAP_WORD_CHAR","","",null,null],[17,"PANGO_ANALYSIS_FLAG_CENTERED_BASELINE","","",null,null],[17,"PANGO_ANALYSIS_FLAG_IS_ELLIPSIS","","",null,null],[17,"PANGO_ATTR_INDEX_FROM_TEXT_BEGINNING","","",null,null],[17,"PANGO_ENGINE_TYPE_LANG","","",null,null],[17,"PANGO_ENGINE_TYPE_SHAPE","","",null,null],[17,"PANGO_GLYPH_EMPTY","","",null,null],[17,"PANGO_GLYPH_INVALID_INPUT","","",null,null],[17,"PANGO_GLYPH_UNKNOWN_FLAG","","",null,null],[17,"PANGO_RENDER_TYPE_NONE","","",null,null],[17,"PANGO_SCALE","","",null,null],[17,"PANGO_UNKNOWN_GLYPH_HEIGHT","","",null,null],[17,"PANGO_UNKNOWN_GLYPH_WIDTH","","",null,null],[17,"PANGO_VERSION_MIN_REQUIRED","","",null,null],[17,"PANGO_FONT_MASK_FAMILY","","",null,null],[17,"PANGO_FONT_MASK_STYLE","","",null,null],[17,"PANGO_FONT_MASK_VARIANT","","",null,null],[17,"PANGO_FONT_MASK_WEIGHT","","",null,null],[17,"PANGO_FONT_MASK_STRETCH","","",null,null],[17,"PANGO_FONT_MASK_SIZE","","",null,null],[17,"PANGO_FONT_MASK_GRAVITY","","",null,null],[11,"clone","","",45,{"inputs":[{"name":"self"}],"output":{"name":"pangoalignment"}}],[11,"fmt","","",45,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",45,{"inputs":[{"name":"self"},{"name":"pangoalignment"}],"output":{"name":"bool"}}],[11,"clone","","",46,{"inputs":[{"name":"self"}],"output":{"name":"pangoattrtype"}}],[11,"fmt","","",46,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",46,{"inputs":[{"name":"self"},{"name":"pangoattrtype"}],"output":{"name":"bool"}}],[11,"clone","","",47,{"inputs":[{"name":"self"}],"output":{"name":"pangobiditype"}}],[11,"fmt","","",47,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",47,{"inputs":[{"name":"self"},{"name":"pangobiditype"}],"output":{"name":"bool"}}],[11,"clone","","",48,{"inputs":[{"name":"self"}],"output":{"name":"pangocoveragelevel"}}],[11,"fmt","","",48,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",48,{"inputs":[{"name":"self"},{"name":"pangocoveragelevel"}],"output":{"name":"bool"}}],[11,"clone","","",49,{"inputs":[{"name":"self"}],"output":{"name":"pangodirection"}}],[11,"fmt","","",49,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",49,{"inputs":[{"name":"self"},{"name":"pangodirection"}],"output":{"name":"bool"}}],[11,"clone","","",50,{"inputs":[{"name":"self"}],"output":{"name":"pangoellipsizemode"}}],[11,"fmt","","",50,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",50,{"inputs":[{"name":"self"},{"name":"pangoellipsizemode"}],"output":{"name":"bool"}}],[11,"clone","","",51,{"inputs":[{"name":"self"}],"output":{"name":"pangogravity"}}],[11,"fmt","","",51,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",51,{"inputs":[{"name":"self"},{"name":"pangogravity"}],"output":{"name":"bool"}}],[11,"clone","","",52,{"inputs":[{"name":"self"}],"output":{"name":"pangogravityhint"}}],[11,"fmt","","",52,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",52,{"inputs":[{"name":"self"},{"name":"pangogravityhint"}],"output":{"name":"bool"}}],[11,"clone","","",53,{"inputs":[{"name":"self"}],"output":{"name":"pangorenderpart"}}],[11,"fmt","","",53,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",53,{"inputs":[{"name":"self"},{"name":"pangorenderpart"}],"output":{"name":"bool"}}],[11,"clone","","",54,{"inputs":[{"name":"self"}],"output":{"name":"pangoscript"}}],[11,"fmt","","",54,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",54,{"inputs":[{"name":"self"},{"name":"pangoscript"}],"output":{"name":"bool"}}],[11,"clone","","",55,{"inputs":[{"name":"self"}],"output":{"name":"pangostretch"}}],[11,"fmt","","",55,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",55,{"inputs":[{"name":"self"},{"name":"pangostretch"}],"output":{"name":"bool"}}],[11,"clone","","",56,{"inputs":[{"name":"self"}],"output":{"name":"pangostyle"}}],[11,"fmt","","",56,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",56,{"inputs":[{"name":"self"},{"name":"pangostyle"}],"output":{"name":"bool"}}],[11,"clone","","",57,{"inputs":[{"name":"self"}],"output":{"name":"pangounderline"}}],[11,"fmt","","",57,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",57,{"inputs":[{"name":"self"},{"name":"pangounderline"}],"output":{"name":"bool"}}],[11,"clone","","",58,{"inputs":[{"name":"self"}],"output":{"name":"pangovariant"}}],[11,"fmt","","",58,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",58,{"inputs":[{"name":"self"},{"name":"pangovariant"}],"output":{"name":"bool"}}],[11,"clone","","",59,{"inputs":[{"name":"self"}],"output":{"name":"pangoweight"}}],[11,"fmt","","",59,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",59,{"inputs":[{"name":"self"},{"name":"pangoweight"}],"output":{"name":"bool"}}],[11,"clone","","",60,{"inputs":[{"name":"self"}],"output":{"name":"pangowrapmode"}}],[11,"fmt","","",60,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",60,{"inputs":[{"name":"self"},{"name":"pangowrapmode"}],"output":{"name":"bool"}}],[11,"eq","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"ne","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"clone","","",61,{"inputs":[{"name":"self"}],"output":{"name":"pangofontmask"}}],[11,"partial_cmp","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"option"}}],[11,"lt","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"le","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"gt","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"ge","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"cmp","","",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"ordering"}}],[11,"hash","","",61,null],[11,"fmt","","",61,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",61,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",61,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",61,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",61,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"empty","","Returns an empty set of flags.",61,{"inputs":[],"output":{"name":"pangofontmask"}}],[11,"all","","Returns the set containing all flags.",61,{"inputs":[],"output":{"name":"pangofontmask"}}],[11,"bits","","Returns the raw value of the flags currently stored.",61,{"inputs":[{"name":"self"}],"output":{"name":"c_uint"}}],[11,"from_bits","","Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.",61,{"inputs":[{"name":"c_uint"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits that do not correspond to flags.",61,{"inputs":[{"name":"c_uint"}],"output":{"name":"pangofontmask"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",61,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"is_all","","Returns `true` if all flags are currently set.",61,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"bool"}}],[11,"insert","","Inserts the specified flags in-place.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":null}],[11,"remove","","Removes the specified flags in-place.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":null}],[11,"toggle","","Toggles the specified flags in-place.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":null}],[11,"set","","Inserts or removes the specified flags depending on the passed value.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"},{"name":"bool"}],"output":null}],[11,"bitor","","Returns the union of the two sets of flags.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"pangofontmask"}}],[11,"bitor_assign","","Adds the set of flags.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":null}],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"pangofontmask"}}],[11,"bitxor_assign","","Toggles the set of flags.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":null}],[11,"bitand","","Returns the intersection between the two sets of flags.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"pangofontmask"}}],[11,"bitand_assign","","Disables all flags disabled in the set.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":null}],[11,"sub","","Returns the set difference of the two sets of flags.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":{"name":"pangofontmask"}}],[11,"sub_assign","","Disables all flags enabled in the set.",61,{"inputs":[{"name":"self"},{"name":"pangofontmask"}],"output":null}],[11,"not","","Returns the complement of this set of flags.",61,{"inputs":[{"name":"self"}],"output":{"name":"pangofontmask"}}],[11,"extend","","",61,{"inputs":[{"name":"self"},{"name":"t"}],"output":null}],[11,"from_iter","","",61,{"inputs":[{"name":"t"}],"output":{"name":"pangofontmask"}}]],"paths":[[3,"PangoAnalysis"],[3,"PangoAttrClass"],[3,"PangoAttrColor"],[3,"PangoAttrFloat"],[3,"PangoAttrFontDesc"],[3,"PangoAttrFontFeatures"],[3,"PangoAttrInt"],[3,"PangoAttrLanguage"],[3,"PangoAttrShape"],[3,"PangoAttrSize"],[3,"PangoAttrString"],[3,"PangoAttribute"],[3,"PangoColor"],[3,"PangoEngineClass"],[3,"PangoEngineInfo"],[3,"PangoEngineLangClass"],[3,"PangoEngineScriptInfo"],[3,"PangoEngineShapeClass"],[3,"PangoFontClass"],[3,"PangoFontFaceClass"],[3,"PangoFontFamilyClass"],[3,"PangoFontMapClass"],[3,"PangoFontMetrics"],[3,"PangoFontsetClass"],[3,"PangoGlyphGeometry"],[3,"PangoGlyphInfo"],[3,"PangoGlyphItem"],[3,"PangoGlyphItemIter"],[3,"PangoGlyphString"],[3,"PangoIncludedModule"],[3,"PangoItem"],[3,"PangoLayoutLine"],[3,"PangoMatrix"],[3,"PangoRectangle"],[3,"PangoRendererClass"],[3,"PangoScriptForLang"],[3,"PangoEngine"],[3,"PangoEngineLang"],[3,"PangoEngineShape"],[3,"PangoFont"],[3,"PangoFontFace"],[3,"PangoFontFamily"],[3,"PangoFontMap"],[3,"PangoFontset"],[3,"PangoRenderer"],[4,"PangoAlignment"],[4,"PangoAttrType"],[4,"PangoBidiType"],[4,"PangoCoverageLevel"],[4,"PangoDirection"],[4,"PangoEllipsizeMode"],[4,"PangoGravity"],[4,"PangoGravityHint"],[4,"PangoRenderPart"],[4,"PangoScript"],[4,"PangoStretch"],[4,"PangoStyle"],[4,"PangoUnderline"],[4,"PangoVariant"],[4,"PangoWeight"],[4,"PangoWrapMode"],[3,"PangoFontMask"]]}; searchIndex["png"] = {"doc":"PNG encoder and decoder This crate contains a PNG encoder and decoder. It supports reading of single lines or whole frames. ## The decoder The most important types for decoding purposes are `Decoder` and `Reader`. They both wrap a `std::io::Read`. `Decoder` serves as a builder for `Reader`. Calling `Decoder::read_info` reads from the `Read` until the image data is reached. ### Using the decoder use std::fs::File;","items":[[3,"PixelDimensions","png","Pixel dimensions information",null,null],[12,"xppu","","Pixels per unit, X axis",0,null],[12,"yppu","","Pixels per unit, Y axis",0,null],[12,"unit","","Either Meter or Unspecified",0,null],[3,"FrameControl","","Frame control information",null,null],[12,"sequence_number","","Sequence number of the animation chunk, starting from 0",1,null],[12,"width","","Width of the following frame",1,null],[12,"height","","Height of the following frame",1,null],[12,"x_offset","","X position at which to render the following frame",1,null],[12,"y_offset","","Y position at which to render the following frame",1,null],[12,"delay_num","","Frame delay fraction numerator",1,null],[12,"delay_den","","Frame delay fraction denominator",1,null],[12,"dispose_op","","Type of frame area disposal to be done after rendering this frame",1,null],[12,"blend_op","","Type of frame area rendering for this frame",1,null],[3,"AnimationControl","","Animation control information",null,null],[12,"num_frames","","Number of frames",2,null],[12,"num_plays","","Number of times to loop this APNG. 0 indicates infinite looping.",2,null],[3,"Info","","PNG info struct",null,null],[12,"width","","",3,null],[12,"height","","",3,null],[12,"bit_depth","","",3,null],[12,"color_type","","",3,null],[12,"interlaced","","",3,null],[12,"trns","","",3,null],[12,"pixel_dims","","",3,null],[12,"palette","","",3,null],[12,"frame_control","","",3,null],[12,"animation_control","","",3,null],[3,"Transformations","","Output transformations",null,null],[3,"Decoder","","PNG Decoder",null,null],[3,"Reader","","PNG reader (mostly high-level interface)",null,null],[3,"OutputInfo","","Output info",null,null],[12,"width","","",4,null],[12,"height","","",4,null],[12,"color_type","","",4,null],[12,"bit_depth","","",4,null],[12,"line_size","","",4,null],[3,"StreamingDecoder","","PNG StreamingDecoder (low-level interface)",null,null],[3,"Encoder","","PNG Encoder",null,null],[3,"Writer","","PNG writer",null,null],[4,"ColorType","","",null,null],[13,"Grayscale","","",5,null],[13,"RGB","","",5,null],[13,"Indexed","","",5,null],[13,"GrayscaleAlpha","","",5,null],[13,"RGBA","","",5,null],[4,"BitDepth","","Bit depth of the png file",null,null],[13,"One","","",6,null],[13,"Two","","",6,null],[13,"Four","","",6,null],[13,"Eight","","",6,null],[13,"Sixteen","","",6,null],[4,"Unit","","Physical unit of the pixel dimensions",null,null],[13,"Unspecified","","",7,null],[13,"Meter","","",7,null],[4,"Decoded","","Result of the decoding process",null,null],[13,"Nothing","","Nothing decoded yet",8,null],[13,"Header","","",8,null],[13,"ChunkBegin","","",8,null],[13,"ChunkComplete","","",8,null],[13,"PixelDimensions","","",8,null],[13,"AnimationControl","","",8,null],[13,"FrameControl","","",8,null],[13,"ImageData","","Decoded raw image data.",8,null],[13,"PartialChunk","","",8,null],[13,"ImageEnd","","",8,null],[4,"DecodingError","","",null,null],[13,"IoError","","",9,null],[13,"Format","","",9,null],[13,"InvalidSignature","","",9,null],[13,"CrcMismatch","","",9,null],[12,"recover","png::DecodingError","bytes to skip to try to recover from this error",9,null],[12,"crc_val","","Stored CRC32 value",9,null],[12,"crc_sum","","Calculated CRC32 sum",9,null],[12,"chunk","","",9,null],[13,"Other","png","",9,null],[13,"CorruptFlateStream","","",9,null],[4,"EncodingError","","",null,null],[13,"IoError","","",10,null],[13,"Format","","",10,null],[0,"chunk","","Chunk types and functions",null,null],[5,"is_critical","png::chunk","Returns true if the chunk is critical.",null,{"inputs":[{"name":"chunktype"}],"output":{"name":"bool"}}],[5,"is_private","","Returns true if the chunk is private.",null,{"inputs":[{"name":"chunktype"}],"output":{"name":"bool"}}],[5,"reserved_set","","Checks whether the reserved bit of the chunk name is set. If it is set the chunk name is invalid.",null,{"inputs":[{"name":"chunktype"}],"output":{"name":"bool"}}],[5,"safe_to_copy","","Returns true if the chunk is safe to copy if unknown.",null,{"inputs":[{"name":"chunktype"}],"output":{"name":"bool"}}],[6,"ChunkType","","",null,null],[17,"IHDR","","Image header",null,null],[17,"PLTE","","Palette",null,null],[17,"IDAT","","Image data",null,null],[17,"IEND","","Image trailer",null,null],[17,"tRNS","","Transparency",null,null],[17,"bKGD","","Background colour",null,null],[17,"tIME","","Image last-modification time",null,null],[17,"pHYs","","Physical pixel dimensions",null,null],[17,"acTL","","Animation control",null,null],[17,"fcTL","","Frame control",null,null],[17,"fdAT","","Frame data",null,null],[11,"fmt","png","",8,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",9,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"description","","",9,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"fmt","","",9,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"from","","",9,{"inputs":[{"name":"error"}],"output":{"name":"decodingerror"}}],[11,"from","","",9,{"inputs":[{"name":"string"}],"output":{"name":"decodingerror"}}],[11,"new","","Creates a new StreamingDecoder",11,{"inputs":[],"output":{"name":"streamingdecoder"}}],[11,"reset","","Resets the StreamingDecoder",11,{"inputs":[{"name":"self"}],"output":null}],[11,"update","","Low level StreamingDecoder interface.",11,null],[11,"set_param","","",12,{"inputs":[{"name":"self"},{"name":"decoder"}],"output":null}],[11,"buffer_size","","Returns the size needed to hold a decoded frame",4,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"new","","",13,{"inputs":[{"name":"r"}],"output":{"name":"decoder"}}],[11,"read_info","","Reads all meta data until the first IDAT chunk",13,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"info","","",14,{"inputs":[{"name":"self"}],"output":{"name":"info"}}],[11,"next_frame","","Decodes the next frame into `buf`",14,null],[11,"next_row","","Returns the next processed row of the image",14,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"next_interlaced_row","","Returns the next processed row of the image",14,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"output_color_type","","Returns the color type and the number of bits per sample of the data returned by `Reader::next_row` and Reader::frames`.",14,null],[11,"output_buffer_size","","Returns the number of bytes required to hold a deinterlaced image frame that is decoded using the given input transformations.",14,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"output_line_size","","Returns the number of bytes required to hold a deinterlaced row.",14,{"inputs":[{"name":"self"},{"name":"u32"}],"output":{"name":"usize"}}],[11,"fmt","","",10,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"description","","",10,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"fmt","","",10,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"from","","",10,{"inputs":[{"name":"error"}],"output":{"name":"encodingerror"}}],[11,"new","","",15,{"inputs":[{"name":"w"},{"name":"u32"},{"name":"u32"}],"output":{"name":"encoder"}}],[11,"write_header","","",15,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"set_param","","",5,{"inputs":[{"name":"self"},{"name":"encoder"}],"output":null}],[11,"set_param","","",6,{"inputs":[{"name":"self"},{"name":"encoder"}],"output":null}],[11,"write_chunk","","",16,null],[11,"write_image_data","","Writes the image data.",16,null],[11,"drop","","",16,{"inputs":[{"name":"self"}],"output":null}],[11,"fmt","","",5,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",5,{"inputs":[{"name":"self"}],"output":{"name":"colortype"}}],[11,"eq","","",5,{"inputs":[{"name":"self"},{"name":"colortype"}],"output":{"name":"bool"}}],[11,"samples","","Returns the number of samples used per pixel of `ColorType`",5,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"from_u8","","u8 -> Self. Temporary solution until Rust provides a canonical one.",5,{"inputs":[{"name":"u8"}],"output":{"name":"option"}}],[11,"fmt","","",6,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",6,{"inputs":[{"name":"self"}],"output":{"name":"bitdepth"}}],[11,"eq","","",6,{"inputs":[{"name":"self"},{"name":"bitdepth"}],"output":{"name":"bool"}}],[11,"from_u8","","u8 -> Self. Temporary solution until Rust provides a canonical one.",6,{"inputs":[{"name":"u8"}],"output":{"name":"option"}}],[11,"clone","","",0,{"inputs":[{"name":"self"}],"output":{"name":"pixeldimensions"}}],[11,"fmt","","",0,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",7,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",7,{"inputs":[{"name":"self"}],"output":{"name":"unit"}}],[11,"eq","","",7,{"inputs":[{"name":"self"},{"name":"unit"}],"output":{"name":"bool"}}],[11,"from_u8","","u8 -> Self. Temporary solution until Rust provides a canonical one.",7,{"inputs":[{"name":"u8"}],"output":{"name":"option"}}],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",2,{"inputs":[{"name":"self"}],"output":{"name":"animationcontrol"}}],[11,"fmt","","",2,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",3,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",3,{"inputs":[],"output":{"name":"info"}}],[11,"size","","Size of the image",3,null],[11,"is_animated","","Returns true if the image is an APNG image.",3,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"animation_control","","Returns the frame control information of the image",3,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"frame_control","","Returns the frame control information of the current frame",3,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"bits_per_pixel","","Returns the bits per pixel",3,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"bytes_per_pixel","","Returns the bytes per pixel",3,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"raw_bytes","","Returns the number of bytes needed for one deinterlaced image",3,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"raw_row_length","","Returns the number of bytes needed for one deinterlaced row ",3,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"raw_row_length_from_width","","Returns the number of bytes needed for one deinterlaced row of width `width`",3,{"inputs":[{"name":"self"},{"name":"u32"}],"output":{"name":"usize"}}],[11,"eq","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"ne","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"clone","","",12,{"inputs":[{"name":"self"}],"output":{"name":"transformations"}}],[11,"partial_cmp","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"option"}}],[11,"lt","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"le","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"gt","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"ge","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"cmp","","",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"ordering"}}],[11,"hash","","",12,null],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"empty","","Returns an empty set of flags.",12,{"inputs":[],"output":{"name":"transformations"}}],[11,"all","","Returns the set containing all flags.",12,{"inputs":[],"output":{"name":"transformations"}}],[11,"bits","","Returns the raw value of the flags currently stored.",12,{"inputs":[{"name":"self"}],"output":{"name":"u32"}}],[11,"from_bits","","Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.",12,{"inputs":[{"name":"u32"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits that do not correspond to flags.",12,{"inputs":[{"name":"u32"}],"output":{"name":"transformations"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",12,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"is_all","","Returns `true` if all flags are currently set.",12,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"bool"}}],[11,"insert","","Inserts the specified flags in-place.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":null}],[11,"remove","","Removes the specified flags in-place.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":null}],[11,"toggle","","Toggles the specified flags in-place.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":null}],[11,"set","","Inserts or removes the specified flags depending on the passed value.",12,{"inputs":[{"name":"self"},{"name":"transformations"},{"name":"bool"}],"output":null}],[11,"bitor","","Returns the union of the two sets of flags.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"transformations"}}],[11,"bitor_assign","","Adds the set of flags.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":null}],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"transformations"}}],[11,"bitxor_assign","","Toggles the set of flags.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":null}],[11,"bitand","","Returns the intersection between the two sets of flags.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"transformations"}}],[11,"bitand_assign","","Disables all flags disabled in the set.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":null}],[11,"sub","","Returns the set difference of the two sets of flags.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":{"name":"transformations"}}],[11,"sub_assign","","Disables all flags enabled in the set.",12,{"inputs":[{"name":"self"},{"name":"transformations"}],"output":null}],[11,"not","","Returns the complement of this set of flags.",12,{"inputs":[{"name":"self"}],"output":{"name":"transformations"}}],[11,"extend","","",12,{"inputs":[{"name":"self"},{"name":"t"}],"output":null}],[11,"from_iter","","",12,{"inputs":[{"name":"t"}],"output":{"name":"transformations"}}],[17,"TRANSFORM_IDENTITY","","No transformation",null,null],[17,"TRANSFORM_STRIP_16","","Strip 16-bit samples to 8 bits",null,null],[17,"TRANSFORM_STRIP_ALPHA","","Discard the alpha channel",null,null],[17,"TRANSFORM_PACKING","","Expand 1; 2 and 4-bit samples to bytes",null,null],[17,"TRANSFORM_PACKSWAP","","Change order of packed pixels to LSB first",null,null],[17,"TRANSFORM_EXPAND","","Expand paletted images to RGB; expand grayscale images of less than 8-bit depth to 8-bit depth; and expand tRNS chunks to alpha channels.",null,null],[17,"TRANSFORM_INVERT_MONO","","Invert monochrome images",null,null],[17,"TRANSFORM_SHIFT","","Normalize pixels to the sBIT depth",null,null],[17,"TRANSFORM_BGR","","Flip RGB to BGR; RGBA to BGRA",null,null],[17,"TRANSFORM_SWAP_ALPHA","","Flip RGBA to ARGB or GA to AG",null,null],[17,"TRANSFORM_SWAP_ENDIAN","","Byte-swap 16-bit samples",null,null],[17,"TRANSFORM_INVERT_ALPHA","","Change alpha from opacity to transparency",null,null],[17,"TRANSFORM_STRIP_FILLER","","",null,null],[17,"TRANSFORM_STRIP_FILLER_BEFORE","","",null,null],[17,"TRANSFORM_STRIP_FILLER_AFTER","","",null,null],[17,"TRANSFORM_GRAY_TO_RGB","","",null,null],[17,"TRANSFORM_EXPAND_16","","",null,null],[17,"TRANSFORM_SCALE_16","","",null,null],[8,"Parameter","","Configuration parameter trait",null,null],[10,"set_param","","",17,{"inputs":[{"name":"self"},{"name":"object"}],"output":null}],[8,"HasParameters","","Object has parameters",null,null],[11,"set","","",18,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"self"}}],[11,"set","","",18,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"self"}}]],"paths":[[3,"PixelDimensions"],[3,"FrameControl"],[3,"AnimationControl"],[3,"Info"],[3,"OutputInfo"],[4,"ColorType"],[4,"BitDepth"],[4,"Unit"],[4,"Decoded"],[4,"DecodingError"],[4,"EncodingError"],[3,"StreamingDecoder"],[3,"Transformations"],[3,"Decoder"],[3,"Reader"],[3,"Encoder"],[3,"Writer"],[8,"Parameter"],[8,"HasParameters"]]}; -searchIndex["pnmixerlib"] = {"doc":"","items":[[0,"errors","pnmixerlib","",null,null],[3,"Error","pnmixerlib::errors","The Error type.",null,null],[12,"0","","The kind of the error.",0,null],[4,"ErrorKind","","The kind of an error.",null,null],[13,"Msg","","A convenient variant for String.",1,null],[13,"Alsa","","",1,null],[13,"IO","","",1,null],[13,"Toml","","",1,null],[13,"Png","","",1,null],[6,"Result","","Convenient wrapper around `std::Result`.",null,null],[8,"ResultExt","","Additional methods for `Result`, for easy interaction with this crate.",null,null],[10,"chain_err","","If the `Result` is an `Err` then `chain_err` evaluates the closure, which returns some type that can be converted to `ErrorKind`, boxes the original error to store as the cause, then returns a new error containing the original error.",2,{"inputs":[{"name":"self"},{"name":"f"}],"output":{"name":"result"}}],[10,"from_err","","Converts a convertible error via `From::from` to the result error. Useful to turn e.g. `std::io::Error` into our own Error type.",2,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"fmt","","",0,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"new","","",0,{"inputs":[{"name":"errorkind"},{"name":"state"}],"output":{"name":"error"}}],[11,"from_kind","","",0,null],[11,"with_chain","","",0,{"inputs":[{"name":"e"},{"name":"k"}],"output":{"name":"self"}}],[11,"kind","","",0,null],[11,"iter","","",0,{"inputs":[{"name":"self"}],"output":{"name":"errorchainiter"}}],[11,"chain_err","","",0,{"inputs":[{"name":"self"},{"name":"f"}],"output":{"name":"self"}}],[11,"backtrace","","",0,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"extract_backtrace","","",0,{"inputs":[{"name":"error"}],"output":{"name":"option"}}],[11,"from_kind","","Constructs an error from a kind, and generates a backtrace.",0,{"inputs":[{"name":"errorkind"}],"output":{"name":"error"}}],[11,"with_chain","","Constructs a chained error from another error and a kind, and generates a backtrace.",0,{"inputs":[{"name":"e"},{"name":"k"}],"output":{"name":"error"}}],[11,"kind","","Returns the kind of the error.",0,{"inputs":[{"name":"self"}],"output":{"name":"errorkind"}}],[11,"iter","","Iterates over the error chain.",0,{"inputs":[{"name":"self"}],"output":{"name":"errorchainiter"}}],[11,"backtrace","","Returns the backtrace associated with this error.",0,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"chain_err","","Extends the error chain with a new entry.",0,{"inputs":[{"name":"self"},{"name":"f"}],"output":{"name":"error"}}],[11,"description","","",0,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"cause","","",0,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","","",0,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"from","","",0,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"decodingerror"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"deref","","",0,null],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"description","","A string describing the error kind.",1,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"from","","",1,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",1,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"from","","",1,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[0,"glade_helpers","pnmixerlib","",null,null],[0,"alsa_card","","Alsa audio subsystem.",null,null],[3,"AlsaCard","pnmixerlib::alsa_card","A fairly high-level alsa card struct. We save some redundant information in order to access it more easily, in addition to some information that is not purely alsa related (like callbacks).",null,null],[12,"card","","The raw alsa card.",3,null],[12,"mixer","","The raw mixer.",3,null],[12,"selem_id","","The simple element ID. `Selem` doesn't implement the Copy trait so we save the ID instead and can get the `Selem` by lookup.",3,null],[12,"watch_ids","","Watch IDs from polling the alsa card. We need them when we drop the card, so we can unregister the polling.",3,null],[12,"cb","","Callback for the various `AlsaEvent`s.",3,null],[4,"AlsaEvent","","An \"external\" alsa card event, potentially triggered by anything.",null,null],[13,"AlsaCardError","","An error.",4,null],[13,"AlsaCardDiconnected","","Alsa card is disconnected.",4,null],[13,"AlsaCardValuesChanged","","The values of the mixer changed, including mute state.",4,null],[11,"clone","","",4,{"inputs":[{"name":"self"}],"output":{"name":"alsaevent"}}],[11,"fmt","","",4,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"new","","Create a new alsa card. Tries very hard to get a valid, playable card and mixer, so this is not a 'strict' function. ## `card_name` If a card name is provided, it will be tried. If `None` is provided or the given card name does not exist or is not playable, any other playable card is tried. ## `elem_name` If an elem name is provided, it will be tried. If `None` is provided or the given elem name does not exist or is not playable, any other playable elem is tried. ## `cb` Callback for the various `AlsaEvent`s.",3,{"inputs":[{"name":"option"},{"name":"option"},{"name":"rc"}],"output":{"name":"result"}}],[11,"card_name","","Get the name of the alsa card.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"chan_name","","Get the name of the channel.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"selem","","Get the `Selem`, looked up by the `SelemId`.",3,{"inputs":[{"name":"self"}],"output":{"name":"selem"}}],[11,"get_vol","","Get the current volume. The returned value corresponds to the volume range and might need to be interpreted (such as converting to percentage). This always gets the volume of the `FrontRight` channel, because the seems to be the safest bet.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"set_vol","","Sets the volume of the current card configuration. ## `new_vol` The volume corresponding to the volume range of the `Selem`. This might need to be translated properly first from other formats (like percentage).",3,{"inputs":[{"name":"self"},{"name":"i64"}],"output":{"name":"result"}}],[11,"get_volume_range","","Gets the volume range of the currently selected card configuration.",3,null],[11,"has_mute","","Whether the current card configuration can be muted.",3,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"get_mute","","Get the mute state of the current card configuration.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"set_mute","","Set the mute state of the current card configuration. ## `mute` Passing `true` here means the card will be muted.",3,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"result"}}],[11,"drop","","Destructs the watch IDs corresponding to the current poll descriptors.",3,{"inputs":[{"name":"self"}],"output":null}],[0,"app_state","pnmixerlib","Global application state.",null,null],[3,"AppS","pnmixerlib::app_state","The global application state struct.",null,null],[12,"gui","","Mostly static GUI state.",5,null],[12,"audio","","Audio state.",5,null],[12,"prefs","","Preferences state.",5,null],[11,"new","","Create an application state instance. There should really only be one.",5,{"inputs":[],"output":{"name":"apps"}}],[11,"update_tray_icon","","Update the tray icon state.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"update_popup_window","","Update the Popup Window state.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"update_notify","","Update the notification state.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"update_audio","","Update the audio state.",5,{"inputs":[{"name":"self"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"update_config","","Update the config file.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[0,"audio","pnmixerlib","High-level audio subsystem.",null,null],[3,"Handlers","pnmixerlib::audio","Convenience struct to make handling this madness easier.",null,null],[3,"Audio","","High-level Audio struct, which could theoretically be backend agnostic.",null,null],[12,"acard","","The alsa card.",6,null],[12,"last_action_timestamp","","Last timestamp of an internal action we triggered, e.g. by setting the volume or the mute state.",6,null],[12,"handlers","","A set of handlers that react to audio signals. We can connect to these.",6,null],[12,"scroll_step","","The step at which to increase/decrease the volume. This value is basically from the preferences.",6,null],[4,"VolLevel","","The volume level of the current audio configuration.",null,null],[13,"Muted","","",7,null],[13,"Low","","",7,null],[13,"Medium","","",7,null],[13,"High","","",7,null],[13,"Off","","",7,null],[4,"AudioUser","","An audio user, used to determine from where a signal originated.",null,null],[13,"Unknown","","",8,null],[13,"Popup","","",8,null],[13,"TrayIcon","","",8,null],[13,"Hotkeys","","",8,null],[13,"PrefsWindow","","",8,null],[4,"AudioSignal","","An audio signal. This will be used to connect callbacks to the audio system and react appropriately.",null,null],[13,"NoCard","","",9,null],[13,"CardInitialized","","",9,null],[13,"CardCleanedUp","","",9,null],[13,"CardDisconnected","","",9,null],[13,"CardError","","",9,null],[13,"ValuesChanged","","",9,null],[11,"clone","","",7,{"inputs":[{"name":"self"}],"output":{"name":"vollevel"}}],[11,"fmt","","",7,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",8,{"inputs":[{"name":"self"}],"output":{"name":"audiouser"}}],[11,"fmt","","",8,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",9,{"inputs":[{"name":"self"}],"output":{"name":"audiosignal"}}],[11,"fmt","","",9,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",10,{"inputs":[{"name":"self"}],"output":{"name":"handlers"}}],[11,"new","","Create a new Audio instance. This tries very hard to get a working configuration from the backend. ## `card_name` If a card name is provided, it will be tried. If `None` is provided or the given card name does not exist or is not playable, any other playable card is tried. ## `elem_name` If an elem name is provided, it will be tried. If `None` is provided or the given elem name does not exist or is not playable, any other playable elem is tried.",6,{"inputs":[{"name":"option"},{"name":"option"}],"output":{"name":"result"}}],[11,"switch_acard","","Switches the current alsa card. Behaves the same way in regards to `card_name` and `elem_name` as the `Audio::new()` method. ## `user` Where the card switch originates from.",6,{"inputs":[{"name":"self"},{"name":"option"},{"name":"option"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"vol","","Current volume.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"vol_level","","Current volume level, nicely usable for e.g. selecting from a set of images.",6,{"inputs":[{"name":"self"}],"output":{"name":"vollevel"}}],[11,"set_vol","","Set the current volume. ## `new_vol` Set the volume to this value. ## `user` Where the card switch originates from. ## `dir` The \"direction\" of the volume change, e.g. is it a decrease or increase. This helps with rounding problems. ## `auto_unmute` Whether to automatically unmute if the volume changes.",6,{"inputs":[{"name":"self"},{"name":"f64"},{"name":"audiouser"},{"name":"voldir"},{"name":"bool"}],"output":{"name":"result"}}],[11,"increase_vol","","Increase the volume. The step to increasy by is taken from `self.scroll_step`. ## `user` Where the card switch originates from.",6,{"inputs":[{"name":"self"},{"name":"audiouser"},{"name":"bool"}],"output":{"name":"result"}}],[11,"decrease_vol","","Decrease the volume. The step to decrease by is taken from `self.scroll_step`. ## `user` Where the card switch originates from.",6,{"inputs":[{"name":"self"},{"name":"audiouser"},{"name":"bool"}],"output":{"name":"result"}}],[11,"has_mute","","Whether the current audio configuration can be muted.",6,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"get_mute","","Get the mute state of the current audio configuration.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"set_mute","","Set the mute state of the current audio configuration.",6,{"inputs":[{"name":"self"},{"name":"bool"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"toggle_mute","","Toggle the mute state of the current audio configuration.",6,{"inputs":[{"name":"self"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"connect_handler","","Connect a signal handler to the audio subsystem. This can be done from anywhere, e.g. in the UI code to react to certain signals. Multiple handlers for the same signals are fine, they will be executed in order.",6,{"inputs":[{"name":"self"},{"name":"box"}],"output":null}],[11,"card_name","","Get the current card name.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"playable_chan_names","","Get the currently playable channel names.",6,{"inputs":[{"name":"self"}],"output":{"name":"vec"}}],[11,"chan_name","","Get the current active channel name.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[0,"prefs","pnmixerlib","The preferences subsystem.",null,null],[3,"DevicePrefs","pnmixerlib::prefs","Device preferences tab.",null,null],[12,"card","","",11,null],[12,"channel","","",11,null],[3,"ViewPrefs","","View preferences tab.",null,null],[12,"draw_vol_meter","","",12,null],[12,"vol_meter_offset","","",12,null],[12,"system_theme","","",12,null],[12,"vol_meter_color","","",12,null],[3,"VolColor","","Volume color setting in the view preferences tab.",null,null],[12,"red","","",13,null],[12,"green","","",13,null],[12,"blue","","",13,null],[3,"BehaviorPrefs","","Behavior preferences tab.",null,null],[12,"unmute_on_vol_change","","",14,null],[12,"vol_control_cmd","","",14,null],[12,"vol_scroll_step","","",14,null],[12,"vol_fine_scroll_step","","",14,null],[12,"middle_click_action","","",14,null],[12,"custom_command","","",14,null],[3,"Prefs","","Main preferences struct, holding all sub-preferences.",null,null],[12,"device_prefs","","",15,null],[12,"view_prefs","","",15,null],[12,"behavior_prefs","","",15,null],[4,"MiddleClickAction","","When the tray icon is middle-clicked.",null,null],[13,"ToggleMute","","",16,null],[13,"ShowPreferences","","",16,null],[13,"VolumeControl","","",16,null],[13,"CustomCommand","","",16,null],[11,"fmt","","",16,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",16,{"inputs":[{"name":"self"}],"output":{"name":"middleclickaction"}}],[11,"default","","",16,{"inputs":[],"output":{"name":"middleclickaction"}}],[11,"from","","",16,{"inputs":[{"name":"i32"}],"output":{"name":"self"}}],[11,"fmt","","",11,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",11,{"inputs":[],"output":{"name":"deviceprefs"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",12,{"inputs":[],"output":{"name":"viewprefs"}}],[11,"fmt","","",13,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",13,{"inputs":[],"output":{"name":"volcolor"}}],[11,"fmt","","",14,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",14,{"inputs":[],"output":{"name":"behaviorprefs"}}],[11,"fmt","","",15,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",15,{"inputs":[],"output":{"name":"prefs"}}],[11,"new","","",15,{"inputs":[],"output":{"name":"result"}}],[11,"reload_config","","Reload the current preferences from the config file.",15,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"store_config","","Store the current preferences to the config file.",15,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"to_str","","Conver the current preferences to a viewable String.",15,{"inputs":[{"name":"self"}],"output":{"name":"string"}}],[11,"get_avail_vol_control_cmd","","Get an available volume control command, which must exist in `$PATH`. Tries hard to fine one, starting with the given preference setting and falling back to the `VOL_CONTROL_COMMANDS` slice.",15,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","","",15,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[0,"support_alsa","pnmixerlib","Alsa audio helper functions.",null,null],[5,"get_default_alsa_card","pnmixerlib::support_alsa","Get the default alsa card. This is the one with the ID `0`.",null,{"inputs":[],"output":{"name":"card"}}],[5,"get_alsa_card_by_id","","Get an alsa card corresponding to the given ID.",null,{"inputs":[{"name":"c_int"}],"output":{"name":"card"}}],[5,"get_alsa_cards","","Get all available alsa cards.",null,{"inputs":[],"output":{"name":"iter"}}],[5,"get_first_playable_alsa_card","","Get the first playable alsa card.",null,{"inputs":[],"output":{"name":"result"}}],[5,"get_playable_alsa_card_names","","Get the names of all playable alsa cards.",null,{"inputs":[],"output":{"name":"vec"}}],[5,"get_alsa_card_by_name","","Get an alsa card by the given name.",null,{"inputs":[{"name":"string"}],"output":{"name":"result"}}],[5,"alsa_card_has_playable_selem","","Check whether the given alsa card as a playable `Selem`.",null,{"inputs":[{"name":"card"}],"output":{"name":"bool"}}],[5,"get_mixer","","Get the `Mixer` for the given alsa card.",null,{"inputs":[{"name":"card"}],"output":{"name":"result"}}],[5,"get_selem","","Get the `Selem` from the given `Elem`.",null,{"inputs":[{"name":"elem"}],"output":{"name":"selem"}}],[5,"get_playable_selems","","Get all playable `Selem`s.",null,{"inputs":[{"name":"mixer"}],"output":{"name":"vec"}}],[5,"get_first_playable_selem","","Get the first playable `Selem`.",null,{"inputs":[{"name":"mixer"}],"output":{"name":"result"}}],[5,"get_playable_selem_names","","Get the names from all playable `Selem`s.",null,{"inputs":[{"name":"mixer"}],"output":{"name":"vec"}}],[5,"get_playable_selem_by_name","","Get a playable `Selem` by the given name.",null,{"inputs":[{"name":"mixer"},{"name":"string"}],"output":{"name":"result"}}],[5,"selem_is_playable","","Check whether the given `Selem` is playable.",null,{"inputs":[{"name":"selem"}],"output":{"name":"bool"}}],[0,"support_audio","pnmixerlib","Helper functions of the audio subsystem.",null,null],[4,"VolDir","pnmixerlib::support_audio","The direction of a volume change.",null,null],[13,"Up","","",17,null],[13,"Down","","",17,null],[13,"Unknown","","",17,null],[5,"vol_change_to_voldir","","Convert a volume change to the `VolDir` type. ## `old` The old volume value. ## `new` The new volume value.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"voldir"}}],[5,"lrint","","Kinda mimics `lrint` from libm. If the direction of the volume change is `Up` then calls `ceil()`, if it's `Down`, then calls `floor()`, otherwise returns the value unchanged.",null,{"inputs":[{"name":"f64"},{"name":"voldir"}],"output":{"name":"f64"}}],[5,"audio_reload","","Reload the audio system.",null,{"inputs":[{"name":"audio"},{"name":"prefs"},{"name":"audiouser"}],"output":{"name":"result"}}],[5,"vol_to_percent","","Converts the actual volume of the audio configuration, which depends on the volume range, to a scale of 0-100, reprenting the percentage of the volume level.",null,null],[5,"percent_to_vol","","Converts the percentage of the volume level (0-100) back to the actual low-level representation of the volume, which depends on the volume range.",null,null],[5,"get_playable_card_names","","Get all playable card names.",null,{"inputs":[],"output":{"name":"vec"}}],[5,"get_playable_chan_names","","Get all playable channel names.",null,{"inputs":[{"name":"string"}],"output":{"name":"vec"}}],[11,"clone","","",17,{"inputs":[{"name":"self"}],"output":{"name":"voldir"}}],[11,"fmt","","",17,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[0,"support_cmd","pnmixerlib","Helper functions for invoking system commands.",null,null],[5,"execute_vol_control_command","pnmixerlib::support_cmd","Execute an available volume control command asynchronously, starting with the preferences and using some fallback values. If none of these are valid executables in `$PATH`, then return `Err(err)`.",null,{"inputs":[{"name":"prefs"}],"output":{"name":"result"}}],[5,"execute_command","","Try to execute the given command asynchronously via gtk.",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[0,"support_ui","pnmixerlib","Helper functions for the UI, mostly pixbuf functions.",null,null],[5,"copy_pixbuf","pnmixerlib::support_ui","Copy a `Pixbuf` explicitly, since they don't implement the `Copy` trait. Currently does not call `gdk_pixbuf_copy_options()`.",null,{"inputs":[{"name":"pixbuf"}],"output":{"name":"pixbuf"}}],[5,"pixbuf_new_from_theme","","Get a pixbuf by name from the given theme with the requested size. Note that the size is not enforced, but rather a hint.",null,{"inputs":[{"name":"str"},{"name":"i32"},{"name":"icontheme"}],"output":{"name":"result"}}],[0,"ui_entry","pnmixerlib","Global GUI state.",null,null],[3,"Gui","pnmixerlib::ui_entry","The GUI struct mostly describing the main widgets (mostly wrapped) the user interacts with.",null,null],[12,"tray_icon","","The tray icon.",18,null],[12,"popup_window","","The popup window.",18,null],[12,"popup_menu","","The popup menu.",18,null],[12,"prefs_dialog","","The preferences dialog.",18,null],[5,"init","","Initialize the GUI system.",null,{"inputs":[{"name":"rc"}],"output":null}],[11,"new","","Constructor. The prefs dialog is initialized as `None`.",18,{"inputs":[{"name":"builder"},{"name":"builder"},{"name":"prefs"}],"output":{"name":"gui"}}],[0,"ui_popup_menu","pnmixerlib","The popup menu subsystem when the user right-clicks on the tray icon.",null,null],[3,"PopupMenu","pnmixerlib::ui_popup_menu","",null,null],[12,"menu_window","","",19,null],[12,"menubar","","",19,null],[12,"menu","","",19,null],[12,"about_item","","",19,null],[12,"mixer_item","","",19,null],[12,"mute_item","","",19,null],[12,"mute_check","","",19,null],[12,"prefs_item","","",19,null],[12,"quit_item","","",19,null],[12,"reload_item","","",19,null],[5,"init_popup_menu","","Initialize the popup menu subsystem, registering all callbacks.",null,{"inputs":[{"name":"rc"}],"output":null}],[11,"new","","",19,{"inputs":[{"name":"builder"}],"output":{"name":"popupmenu"}}],[0,"ui_popup_window","pnmixerlib","The popup window subsystem when the user left-clicks on the tray icon.",null,null],[3,"PopupWindow","pnmixerlib::ui_popup_window","The main struct for the popup window, holding all relevant sub-widgets and some mutable state.",null,null],[12,"popup_window","","The main window for the popup window widget.",20,null],[12,"vol_scale_adj","","The volume scale adjustment.",20,null],[12,"vol_scale","","The volume scale.",20,null],[12,"mute_check","","The mute check button.",20,null],[12,"mixer_button","","The button to start the external mixer.",20,null],[5,"init_popup_window","","Initialize the popup window subsystem.",null,{"inputs":[{"name":"rc"}],"output":null}],[5,"set_slider","","Set the volume slider to the given value.",null,{"inputs":[{"name":"adjustment"},{"name":"f64"}],"output":null}],[11,"new","","Constructor.",20,{"inputs":[{"name":"builder"}],"output":{"name":"popupwindow"}}],[11,"update","","Update the popup window state, including the slider and the mute checkbutton.",20,{"inputs":[{"name":"self"},{"name":"audio"}],"output":{"name":"result"}}],[11,"update_mute_check","","Update the mute checkbutton.",20,{"inputs":[{"name":"self"},{"name":"audio"}],"output":null}],[0,"ui_prefs_dialog","pnmixerlib","The preferences window subsystem, when the user clicks the \"Preferences\" menu item on the popup menu.",null,null],[3,"PrefsDialog","pnmixerlib::ui_prefs_dialog","The main preferences dialog, holding all the relevant subwidgets we need to convert its state to preferences and back.",null,null],[5,"show_prefs_dialog","","Show the preferences dialog. This is created and destroyed dynamically and not persistent across the application lifetime.",null,{"inputs":[{"name":"rc"}],"output":null}],[5,"init_prefs_callback","","Initialize the internal prefs dialog handler that connects to the audio system.",null,{"inputs":[{"name":"rc"}],"output":null}],[0,"ui_tray_icon","pnmixerlib","The tray icon subsystem.",null,null],[3,"TrayIcon","pnmixerlib::ui_tray_icon","The tray icon struct, describing the complete visual state.",null,null],[12,"volmeter","","The volume meter to draw on the actual Pixbuf, if requested.",21,null],[12,"audio_pix","","The actual Pixbuf tray icon.",21,null],[12,"status_icon","","The gtk `StatusIcon` widget, used to register callbacks.",21,null],[12,"icon_size","","The current icon size.",21,null],[3,"VolMeter","","The volume meter, describes by its colors, offset and width/row properties.",null,null],[3,"AudioPix","","The actual tray icon Pixbuf, which depends on the current volume level.",null,null],[5,"init_tray_icon","","Initialize the tray icon subsystem.",null,{"inputs":[{"name":"rc"}],"output":null}],[11,"new","","Constructor. `audio_pix` is initialized as empty GdkPixbuf, to save one iteration of png decoding (`update_all()` is triggered immediately on startup through `tray_icon.connect_size_changed`.",21,{"inputs":[{"name":"prefs"}],"output":{"name":"result"}}],[11,"update_all","","Update the whole tray icon state.",21,{"inputs":[{"name":"self"},{"name":"prefs"},{"name":"audio"},{"name":"option"}],"output":{"name":"result"}}],[11,"clone","","",22,{"inputs":[{"name":"self"}],"output":{"name":"audiopix"}}],[11,"fmt","","",22,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",22,{"inputs":[],"output":{"name":"audiopix"}}],[14,"try_w","pnmixerlib","",null,null],[14,"try_wr","","",null,null],[14,"try_r","","",null,null],[14,"try_e","","",null,null],[14,"try_er","","",null,null],[14,"create_builder_item","","",null,null],[14,"pixbuf_new_from_png","","Create a pixbuf from the given PNG file. Includes the file as bytes in the binary and decodes it.",null,null]],"paths":[[3,"Error"],[4,"ErrorKind"],[8,"ResultExt"],[3,"AlsaCard"],[4,"AlsaEvent"],[3,"AppS"],[3,"Audio"],[4,"VolLevel"],[4,"AudioUser"],[4,"AudioSignal"],[3,"Handlers"],[3,"DevicePrefs"],[3,"ViewPrefs"],[3,"VolColor"],[3,"BehaviorPrefs"],[3,"Prefs"],[4,"MiddleClickAction"],[4,"VolDir"],[3,"Gui"],[3,"PopupMenu"],[3,"PopupWindow"],[3,"TrayIcon"],[3,"AudioPix"]]}; +searchIndex["pnmixerlib"] = {"doc":"PNMixer-rs is a mixer for the system tray.","items":[[0,"errors","pnmixerlib","",null,null],[3,"Error","pnmixerlib::errors","The Error type.",null,null],[12,"0","","The kind of the error.",0,null],[4,"ErrorKind","","The kind of an error.",null,null],[13,"Msg","","A convenient variant for String.",1,null],[13,"Alsa","","",1,null],[13,"IO","","",1,null],[13,"Toml","","",1,null],[13,"Png","","",1,null],[6,"Result","","Convenient wrapper around `std::Result`.",null,null],[8,"ResultExt","","Additional methods for `Result`, for easy interaction with this crate.",null,null],[10,"chain_err","","If the `Result` is an `Err` then `chain_err` evaluates the closure, which returns some type that can be converted to `ErrorKind`, boxes the original error to store as the cause, then returns a new error containing the original error.",2,{"inputs":[{"name":"self"},{"name":"f"}],"output":{"name":"result"}}],[10,"from_err","","Converts a convertible error via `From::from` to the result error. Useful to turn e.g. `std::io::Error` into our own Error type.",2,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"fmt","","",0,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"new","","",0,{"inputs":[{"name":"errorkind"},{"name":"state"}],"output":{"name":"error"}}],[11,"from_kind","","",0,null],[11,"with_chain","","",0,{"inputs":[{"name":"e"},{"name":"k"}],"output":{"name":"self"}}],[11,"kind","","",0,null],[11,"iter","","",0,{"inputs":[{"name":"self"}],"output":{"name":"errorchainiter"}}],[11,"chain_err","","",0,{"inputs":[{"name":"self"},{"name":"f"}],"output":{"name":"self"}}],[11,"backtrace","","",0,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"extract_backtrace","","",0,{"inputs":[{"name":"error"}],"output":{"name":"option"}}],[11,"from_kind","","Constructs an error from a kind, and generates a backtrace.",0,{"inputs":[{"name":"errorkind"}],"output":{"name":"error"}}],[11,"with_chain","","Constructs a chained error from another error and a kind, and generates a backtrace.",0,{"inputs":[{"name":"e"},{"name":"k"}],"output":{"name":"error"}}],[11,"kind","","Returns the kind of the error.",0,{"inputs":[{"name":"self"}],"output":{"name":"errorkind"}}],[11,"iter","","Iterates over the error chain.",0,{"inputs":[{"name":"self"}],"output":{"name":"errorchainiter"}}],[11,"backtrace","","Returns the backtrace associated with this error.",0,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"chain_err","","Extends the error chain with a new entry.",0,{"inputs":[{"name":"self"},{"name":"f"}],"output":{"name":"error"}}],[11,"description","","",0,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"cause","","",0,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","","",0,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"from","","",0,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"decodingerror"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"deref","","",0,null],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"description","","A string describing the error kind.",1,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"from","","",1,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",1,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"from","","",1,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[0,"glade_helpers","pnmixerlib","",null,null],[0,"alsa_card","","Alsa audio subsystem.",null,null],[3,"AlsaCard","pnmixerlib::alsa_card","A fairly high-level alsa card struct. We save some redundant information in order to access it more easily, in addition to some information that is not purely alsa related (like callbacks).",null,null],[12,"card","","The raw alsa card.",3,null],[12,"mixer","","The raw mixer.",3,null],[12,"selem_id","","The simple element ID. `Selem` doesn't implement the Copy trait so we save the ID instead and can get the `Selem` by lookup.",3,null],[12,"watch_ids","","Watch IDs from polling the alsa card. We need them when we drop the card, so we can unregister the polling.",3,null],[12,"cb","","Callback for the various `AlsaEvent`s.",3,null],[4,"AlsaEvent","","An \"external\" alsa card event, potentially triggered by anything.",null,null],[13,"AlsaCardError","","An error.",4,null],[13,"AlsaCardDiconnected","","Alsa card is disconnected.",4,null],[13,"AlsaCardValuesChanged","","The values of the mixer changed, including mute state.",4,null],[11,"clone","","",4,{"inputs":[{"name":"self"}],"output":{"name":"alsaevent"}}],[11,"fmt","","",4,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"new","","Create a new alsa card. Tries very hard to get a valid, playable card and mixer, so this is not a 'strict' function. ## `card_name` If a card name is provided, it will be tried. If `None` is provided or the given card name does not exist or is not playable, any other playable card is tried. ## `elem_name` If an elem name is provided, it will be tried. If `None` is provided or the given elem name does not exist or is not playable, any other playable elem is tried. ## `cb` Callback for the various `AlsaEvent`s.",3,{"inputs":[{"name":"option"},{"name":"option"},{"name":"rc"}],"output":{"name":"result"}}],[11,"card_name","","Get the name of the alsa card.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"chan_name","","Get the name of the channel.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"selem","","Get the `Selem`, looked up by the `SelemId`.",3,{"inputs":[{"name":"self"}],"output":{"name":"selem"}}],[11,"get_vol","","Get the current volume. The returned value corresponds to the volume range and might need to be interpreted (such as converting to percentage). This always gets the volume of the `FrontRight` channel, because the seems to be the safest bet.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"set_vol","","Sets the volume of the current card configuration. ## `new_vol` The volume corresponding to the volume range of the `Selem`. This might need to be translated properly first from other formats (like percentage).",3,{"inputs":[{"name":"self"},{"name":"i64"}],"output":{"name":"result"}}],[11,"get_volume_range","","Gets the volume range of the currently selected card configuration.",3,null],[11,"has_mute","","Whether the current card configuration can be muted.",3,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"get_mute","","Get the mute state of the current card configuration.",3,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"set_mute","","Set the mute state of the current card configuration. ## `mute` Passing `true` here means the card will be muted.",3,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"result"}}],[11,"drop","","Destructs the watch IDs corresponding to the current poll descriptors.",3,{"inputs":[{"name":"self"}],"output":null}],[0,"app_state","pnmixerlib","Global application state.",null,null],[3,"AppS","pnmixerlib::app_state","The global application state struct.",null,null],[12,"gui","","Mostly static GUI state.",5,null],[12,"audio","","Audio state.",5,null],[12,"prefs","","Preferences state.",5,null],[11,"new","","Create an application state instance. There should really only be one.",5,{"inputs":[],"output":{"name":"apps"}}],[11,"update_tray_icon","","Update the tray icon state.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"update_popup_window","","Update the Popup Window state.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"update_notify","","Update the notification state.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"update_audio","","Update the audio state.",5,{"inputs":[{"name":"self"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"update_config","","Update the config file.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[0,"audio","pnmixerlib","High-level audio subsystem.",null,null],[3,"Handlers","pnmixerlib::audio","Convenience struct to make handling this madness easier.",null,null],[3,"Audio","","High-level Audio struct, which could theoretically be backend agnostic.",null,null],[12,"acard","","The alsa card.",6,null],[12,"last_action_timestamp","","Last timestamp of an internal action we triggered, e.g. by setting the volume or the mute state.",6,null],[12,"handlers","","A set of handlers that react to audio signals. We can connect to these.",6,null],[12,"scroll_step","","The step at which to increase/decrease the volume. This value is basically from the preferences.",6,null],[4,"VolLevel","","The volume level of the current audio configuration.",null,null],[13,"Muted","","",7,null],[13,"Low","","",7,null],[13,"Medium","","",7,null],[13,"High","","",7,null],[13,"Off","","",7,null],[4,"AudioUser","","An audio user, used to determine from where a signal originated.",null,null],[13,"Unknown","","",8,null],[13,"Popup","","",8,null],[13,"TrayIcon","","",8,null],[13,"Hotkeys","","",8,null],[13,"PrefsWindow","","",8,null],[4,"AudioSignal","","An audio signal. This will be used to connect callbacks to the audio system and react appropriately.",null,null],[13,"NoCard","","",9,null],[13,"CardInitialized","","",9,null],[13,"CardCleanedUp","","",9,null],[13,"CardDisconnected","","",9,null],[13,"CardError","","",9,null],[13,"ValuesChanged","","",9,null],[11,"clone","","",7,{"inputs":[{"name":"self"}],"output":{"name":"vollevel"}}],[11,"fmt","","",7,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",8,{"inputs":[{"name":"self"}],"output":{"name":"audiouser"}}],[11,"fmt","","",8,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",9,{"inputs":[{"name":"self"}],"output":{"name":"audiosignal"}}],[11,"fmt","","",9,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",10,{"inputs":[{"name":"self"}],"output":{"name":"handlers"}}],[11,"new","","Create a new Audio instance. This tries very hard to get a working configuration from the backend. ## `card_name` If a card name is provided, it will be tried. If `None` is provided or the given card name does not exist or is not playable, any other playable card is tried. ## `elem_name` If an elem name is provided, it will be tried. If `None` is provided or the given elem name does not exist or is not playable, any other playable elem is tried.",6,{"inputs":[{"name":"option"},{"name":"option"}],"output":{"name":"result"}}],[11,"switch_acard","","Switches the current alsa card. Behaves the same way in regards to `card_name` and `elem_name` as the `Audio::new()` method. ## `user` Where the card switch originates from.",6,{"inputs":[{"name":"self"},{"name":"option"},{"name":"option"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"vol","","Current volume.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"vol_level","","Current volume level, nicely usable for e.g. selecting from a set of images.",6,{"inputs":[{"name":"self"}],"output":{"name":"vollevel"}}],[11,"set_vol","","Set the current volume. ## `new_vol` Set the volume to this value. ## `user` Where the card switch originates from. ## `dir` The \"direction\" of the volume change, e.g. is it a decrease or increase. This helps with rounding problems. ## `auto_unmute` Whether to automatically unmute if the volume changes.",6,{"inputs":[{"name":"self"},{"name":"f64"},{"name":"audiouser"},{"name":"voldir"},{"name":"bool"}],"output":{"name":"result"}}],[11,"increase_vol","","Increase the volume. The step to increasy by is taken from `self.scroll_step`. ## `user` Where the card switch originates from.",6,{"inputs":[{"name":"self"},{"name":"audiouser"},{"name":"bool"}],"output":{"name":"result"}}],[11,"decrease_vol","","Decrease the volume. The step to decrease by is taken from `self.scroll_step`. ## `user` Where the card switch originates from.",6,{"inputs":[{"name":"self"},{"name":"audiouser"},{"name":"bool"}],"output":{"name":"result"}}],[11,"has_mute","","Whether the current audio configuration can be muted.",6,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"get_mute","","Get the mute state of the current audio configuration.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"set_mute","","Set the mute state of the current audio configuration.",6,{"inputs":[{"name":"self"},{"name":"bool"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"toggle_mute","","Toggle the mute state of the current audio configuration.",6,{"inputs":[{"name":"self"},{"name":"audiouser"}],"output":{"name":"result"}}],[11,"connect_handler","","Connect a signal handler to the audio subsystem. This can be done from anywhere, e.g. in the UI code to react to certain signals. Multiple handlers for the same signals are fine, they will be executed in order.",6,{"inputs":[{"name":"self"},{"name":"box"}],"output":null}],[11,"card_name","","Get the current card name.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"playable_chan_names","","Get the currently playable channel names.",6,{"inputs":[{"name":"self"}],"output":{"name":"vec"}}],[11,"chan_name","","Get the current active channel name.",6,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[0,"prefs","pnmixerlib","The preferences subsystem.",null,null],[3,"DevicePrefs","pnmixerlib::prefs","Device preferences tab.",null,null],[12,"card","","",11,null],[12,"channel","","",11,null],[3,"ViewPrefs","","View preferences tab.",null,null],[12,"draw_vol_meter","","",12,null],[12,"vol_meter_offset","","",12,null],[12,"system_theme","","",12,null],[12,"vol_meter_color","","",12,null],[3,"VolColor","","Volume color setting in the view preferences tab.",null,null],[12,"red","","",13,null],[12,"green","","",13,null],[12,"blue","","",13,null],[3,"BehaviorPrefs","","Behavior preferences tab.",null,null],[12,"unmute_on_vol_change","","",14,null],[12,"vol_control_cmd","","",14,null],[12,"vol_scroll_step","","",14,null],[12,"vol_fine_scroll_step","","",14,null],[12,"middle_click_action","","",14,null],[12,"custom_command","","",14,null],[3,"Prefs","","Main preferences struct, holding all sub-preferences.",null,null],[12,"device_prefs","","",15,null],[12,"view_prefs","","",15,null],[12,"behavior_prefs","","",15,null],[4,"MiddleClickAction","","When the tray icon is middle-clicked.",null,null],[13,"ToggleMute","","",16,null],[13,"ShowPreferences","","",16,null],[13,"VolumeControl","","",16,null],[13,"CustomCommand","","",16,null],[11,"fmt","","",16,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",16,{"inputs":[{"name":"self"}],"output":{"name":"middleclickaction"}}],[11,"default","","",16,{"inputs":[],"output":{"name":"middleclickaction"}}],[11,"from","","",16,{"inputs":[{"name":"i32"}],"output":{"name":"self"}}],[11,"fmt","","",11,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",11,{"inputs":[],"output":{"name":"deviceprefs"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",12,{"inputs":[],"output":{"name":"viewprefs"}}],[11,"fmt","","",13,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",13,{"inputs":[],"output":{"name":"volcolor"}}],[11,"fmt","","",14,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",14,{"inputs":[],"output":{"name":"behaviorprefs"}}],[11,"fmt","","",15,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",15,{"inputs":[],"output":{"name":"prefs"}}],[11,"new","","",15,{"inputs":[],"output":{"name":"result"}}],[11,"reload_config","","Reload the current preferences from the config file.",15,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"store_config","","Store the current preferences to the config file.",15,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"to_str","","Conver the current preferences to a viewable String.",15,{"inputs":[{"name":"self"}],"output":{"name":"string"}}],[11,"get_avail_vol_control_cmd","","Get an available volume control command, which must exist in `$PATH`. Tries hard to fine one, starting with the given preference setting and falling back to the `VOL_CONTROL_COMMANDS` slice.",15,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","","",15,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[0,"support_alsa","pnmixerlib","Alsa audio helper functions.",null,null],[5,"get_default_alsa_card","pnmixerlib::support_alsa","Get the default alsa card. This is the one with the ID `0`.",null,{"inputs":[],"output":{"name":"card"}}],[5,"get_alsa_card_by_id","","Get an alsa card corresponding to the given ID.",null,{"inputs":[{"name":"c_int"}],"output":{"name":"card"}}],[5,"get_alsa_cards","","Get all available alsa cards.",null,{"inputs":[],"output":{"name":"iter"}}],[5,"get_first_playable_alsa_card","","Get the first playable alsa card.",null,{"inputs":[],"output":{"name":"result"}}],[5,"get_playable_alsa_card_names","","Get the names of all playable alsa cards.",null,{"inputs":[],"output":{"name":"vec"}}],[5,"get_alsa_card_by_name","","Get an alsa card by the given name.",null,{"inputs":[{"name":"string"}],"output":{"name":"result"}}],[5,"alsa_card_has_playable_selem","","Check whether the given alsa card as a playable `Selem`.",null,{"inputs":[{"name":"card"}],"output":{"name":"bool"}}],[5,"get_mixer","","Get the `Mixer` for the given alsa card.",null,{"inputs":[{"name":"card"}],"output":{"name":"result"}}],[5,"get_selem","","Get the `Selem` from the given `Elem`.",null,{"inputs":[{"name":"elem"}],"output":{"name":"selem"}}],[5,"get_playable_selems","","Get all playable `Selem`s.",null,{"inputs":[{"name":"mixer"}],"output":{"name":"vec"}}],[5,"get_first_playable_selem","","Get the first playable `Selem`.",null,{"inputs":[{"name":"mixer"}],"output":{"name":"result"}}],[5,"get_playable_selem_names","","Get the names from all playable `Selem`s.",null,{"inputs":[{"name":"mixer"}],"output":{"name":"vec"}}],[5,"get_playable_selem_by_name","","Get a playable `Selem` by the given name.",null,{"inputs":[{"name":"mixer"},{"name":"string"}],"output":{"name":"result"}}],[5,"selem_is_playable","","Check whether the given `Selem` is playable.",null,{"inputs":[{"name":"selem"}],"output":{"name":"bool"}}],[0,"support_audio","pnmixerlib","Helper functions of the audio subsystem.",null,null],[4,"VolDir","pnmixerlib::support_audio","The direction of a volume change.",null,null],[13,"Up","","",17,null],[13,"Down","","",17,null],[13,"Unknown","","",17,null],[5,"vol_change_to_voldir","","Convert a volume change to the `VolDir` type. ## `old` The old volume value. ## `new` The new volume value.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"voldir"}}],[5,"lrint","","Kinda mimics `lrint` from libm. If the direction of the volume change is `Up` then calls `ceil()`, if it's `Down`, then calls `floor()`, otherwise returns the value unchanged.",null,{"inputs":[{"name":"f64"},{"name":"voldir"}],"output":{"name":"f64"}}],[5,"audio_reload","","Reload the audio system.",null,{"inputs":[{"name":"audio"},{"name":"prefs"},{"name":"audiouser"}],"output":{"name":"result"}}],[5,"vol_to_percent","","Converts the actual volume of the audio configuration, which depends on the volume range, to a scale of 0-100, reprenting the percentage of the volume level.",null,null],[5,"percent_to_vol","","Converts the percentage of the volume level (0-100) back to the actual low-level representation of the volume, which depends on the volume range.",null,null],[5,"get_playable_card_names","","Get all playable card names.",null,{"inputs":[],"output":{"name":"vec"}}],[5,"get_playable_chan_names","","Get all playable channel names.",null,{"inputs":[{"name":"string"}],"output":{"name":"vec"}}],[11,"clone","","",17,{"inputs":[{"name":"self"}],"output":{"name":"voldir"}}],[11,"fmt","","",17,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[0,"support_cmd","pnmixerlib","Helper functions for invoking system commands.",null,null],[5,"execute_vol_control_command","pnmixerlib::support_cmd","Execute an available volume control command asynchronously, starting with the preferences and using some fallback values. If none of these are valid executables in `$PATH`, then return `Err(err)`.",null,{"inputs":[{"name":"prefs"}],"output":{"name":"result"}}],[5,"execute_command","","Try to execute the given command asynchronously via gtk.",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[0,"support_ui","pnmixerlib","Helper functions for the UI, mostly pixbuf functions.",null,null],[5,"copy_pixbuf","pnmixerlib::support_ui","Copy a `Pixbuf` explicitly, since they don't implement the `Copy` trait. Currently does not call `gdk_pixbuf_copy_options()`.",null,{"inputs":[{"name":"pixbuf"}],"output":{"name":"pixbuf"}}],[5,"pixbuf_new_from_theme","","Get a pixbuf by name from the given theme with the requested size. Note that the size is not enforced, but rather a hint.",null,{"inputs":[{"name":"str"},{"name":"i32"},{"name":"icontheme"}],"output":{"name":"result"}}],[0,"ui_entry","pnmixerlib","Global GUI state.",null,null],[3,"Gui","pnmixerlib::ui_entry","The GUI struct mostly describing the main widgets (mostly wrapped) the user interacts with.",null,null],[12,"tray_icon","","The tray icon.",18,null],[12,"popup_window","","The popup window.",18,null],[12,"popup_menu","","The popup menu.",18,null],[12,"prefs_dialog","","The preferences dialog.",18,null],[5,"init","","Initialize the GUI system.",null,{"inputs":[{"name":"rc"}],"output":null}],[11,"new","","Constructor. The prefs dialog is initialized as `None`.",18,{"inputs":[{"name":"builder"},{"name":"builder"},{"name":"prefs"}],"output":{"name":"gui"}}],[0,"ui_popup_menu","pnmixerlib","The popup menu subsystem when the user right-clicks on the tray icon.",null,null],[3,"PopupMenu","pnmixerlib::ui_popup_menu","",null,null],[12,"menu_window","","",19,null],[12,"menubar","","",19,null],[12,"menu","","",19,null],[12,"about_item","","",19,null],[12,"mixer_item","","",19,null],[12,"mute_item","","",19,null],[12,"mute_check","","",19,null],[12,"prefs_item","","",19,null],[12,"quit_item","","",19,null],[12,"reload_item","","",19,null],[5,"init_popup_menu","","Initialize the popup menu subsystem, registering all callbacks.",null,{"inputs":[{"name":"rc"}],"output":null}],[11,"new","","",19,{"inputs":[{"name":"builder"}],"output":{"name":"popupmenu"}}],[0,"ui_popup_window","pnmixerlib","The popup window subsystem when the user left-clicks on the tray icon.",null,null],[3,"PopupWindow","pnmixerlib::ui_popup_window","The main struct for the popup window, holding all relevant sub-widgets and some mutable state.",null,null],[12,"popup_window","","The main window for the popup window widget.",20,null],[12,"vol_scale_adj","","The volume scale adjustment.",20,null],[12,"vol_scale","","The volume scale.",20,null],[12,"mute_check","","The mute check button.",20,null],[12,"mixer_button","","The button to start the external mixer.",20,null],[5,"init_popup_window","","Initialize the popup window subsystem.",null,{"inputs":[{"name":"rc"}],"output":null}],[5,"set_slider","","Set the volume slider to the given value.",null,{"inputs":[{"name":"adjustment"},{"name":"f64"}],"output":null}],[11,"new","","Constructor.",20,{"inputs":[{"name":"builder"}],"output":{"name":"popupwindow"}}],[11,"update","","Update the popup window state, including the slider and the mute checkbutton.",20,{"inputs":[{"name":"self"},{"name":"audio"}],"output":{"name":"result"}}],[11,"update_mute_check","","Update the mute checkbutton.",20,{"inputs":[{"name":"self"},{"name":"audio"}],"output":null}],[0,"ui_prefs_dialog","pnmixerlib","The preferences window subsystem, when the user clicks the \"Preferences\" menu item on the popup menu.",null,null],[3,"PrefsDialog","pnmixerlib::ui_prefs_dialog","The main preferences dialog, holding all the relevant subwidgets we need to convert its state to preferences and back.",null,null],[5,"show_prefs_dialog","","Show the preferences dialog. This is created and destroyed dynamically and not persistent across the application lifetime.",null,{"inputs":[{"name":"rc"}],"output":null}],[5,"init_prefs_callback","","Initialize the internal prefs dialog handler that connects to the audio system.",null,{"inputs":[{"name":"rc"}],"output":null}],[0,"ui_tray_icon","pnmixerlib","The tray icon subsystem.",null,null],[3,"TrayIcon","pnmixerlib::ui_tray_icon","The tray icon struct, describing the complete visual state.",null,null],[12,"volmeter","","The volume meter to draw on the actual Pixbuf, if requested.",21,null],[12,"audio_pix","","The actual Pixbuf tray icon.",21,null],[12,"status_icon","","The gtk `StatusIcon` widget, used to register callbacks.",21,null],[12,"icon_size","","The current icon size.",21,null],[3,"VolMeter","","The volume meter, describes by its colors, offset and width/row properties.",null,null],[3,"AudioPix","","The actual tray icon Pixbuf, which depends on the current volume level.",null,null],[5,"init_tray_icon","","Initialize the tray icon subsystem.",null,{"inputs":[{"name":"rc"}],"output":null}],[11,"new","","Constructor. `audio_pix` is initialized as empty GdkPixbuf, to save one iteration of png decoding (`update_all()` is triggered immediately on startup through `tray_icon.connect_size_changed`.",21,{"inputs":[{"name":"prefs"}],"output":{"name":"result"}}],[11,"update_all","","Update the whole tray icon state.",21,{"inputs":[{"name":"self"},{"name":"prefs"},{"name":"audio"},{"name":"option"}],"output":{"name":"result"}}],[11,"clone","","",22,{"inputs":[{"name":"self"}],"output":{"name":"audiopix"}}],[11,"fmt","","",22,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"default","","",22,{"inputs":[],"output":{"name":"audiopix"}}],[14,"try_w","pnmixerlib","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise print a warning and `return ()` from the function.",null,null],[14,"try_wr","","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise print a warning and return from the function with the given value.",null,null],[14,"try_r","","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise return from the function with the given value.",null,null],[14,"try_e","","Try to unwrap a `Result`. If there is a value `T`, yield it, otherwise print an error and exit the program.",null,null],[14,"create_builder_item","","",null,null],[14,"pixbuf_new_from_png","","Create a pixbuf from the given PNG file. Includes the file as bytes in the binary and decodes it.",null,null]],"paths":[[3,"Error"],[4,"ErrorKind"],[8,"ResultExt"],[3,"AlsaCard"],[4,"AlsaEvent"],[3,"AppS"],[3,"Audio"],[4,"VolLevel"],[4,"AudioUser"],[4,"AudioSignal"],[3,"Handlers"],[3,"DevicePrefs"],[3,"ViewPrefs"],[3,"VolColor"],[3,"BehaviorPrefs"],[3,"Prefs"],[4,"MiddleClickAction"],[4,"VolDir"],[3,"Gui"],[3,"PopupMenu"],[3,"PopupWindow"],[3,"TrayIcon"],[3,"AudioPix"]]}; searchIndex["quote"] = {"doc":"Quasi-quoting without a Syntex dependency, intended for use with Macros 1.1.","items":[[3,"Tokens","quote","Tokens produced by a `quote!(...)` invocation.",null,null],[3,"ByteStr","","Wrap a `&str` so it interpolates as a byte-string: `b\"abc\"`.",null,null],[12,"0","","",0,null],[3,"Hex","","Wrap an integer so it interpolates as a hexadecimal.",null,null],[12,"0","","",1,null],[3,"Ident","","An identifier that should be interpolated without quotes.",null,null],[11,"fmt","","",2,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",2,{"inputs":[{"name":"self"}],"output":{"name":"tokens"}}],[11,"eq","","",2,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":{"name":"bool"}}],[11,"ne","","",2,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":{"name":"bool"}}],[11,"new","","Empty tokens.",2,{"inputs":[],"output":{"name":"self"}}],[11,"append","","For use by `ToTokens` implementations.",2,{"inputs":[{"name":"self"},{"name":"t"}],"output":null}],[11,"append_all","","For use by `ToTokens` implementations.",2,{"inputs":[{"name":"self"},{"name":"i"}],"output":null}],[11,"append_separated","","For use by `ToTokens` implementations.",2,{"inputs":[{"name":"self"},{"name":"i"},{"name":"s"}],"output":null}],[11,"append_terminated","","For use by `ToTokens` implementations.",2,{"inputs":[{"name":"self"},{"name":"i"},{"name":"s"}],"output":null}],[11,"as_str","","",2,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"into_string","","",2,{"inputs":[{"name":"self"}],"output":{"name":"string"}}],[11,"parse","","",2,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"default","","",2,{"inputs":[],"output":{"name":"self"}}],[11,"fmt","","",2,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"as_ref","","",2,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"fmt","","",0,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"to_tokens","","",0,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",2,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"to_tokens","","",1,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[11,"fmt","","",3,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","","",3,{"inputs":[{"name":"self"}],"output":{"name":"ident"}}],[11,"hash","","",3,null],[11,"new","","",3,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"from","","",3,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",3,{"inputs":[{"name":"cow"}],"output":{"name":"self"}}],[11,"from","","",3,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"as_ref","","",3,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"fmt","","",3,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",3,{"inputs":[{"name":"self"},{"name":"t"}],"output":{"name":"bool"}}],[11,"to_tokens","","",3,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[8,"ToTokens","","Types that can be interpolated inside a `quote!(...)` invocation.",null,null],[10,"to_tokens","","Write `self` to the given `Tokens`.",4,{"inputs":[{"name":"self"},{"name":"tokens"}],"output":null}],[14,"quote","","The whole point.",null,null]],"paths":[[3,"ByteStr"],[3,"Hex"],[3,"Tokens"],[3,"Ident"],[8,"ToTokens"]]}; searchIndex["regex"] = {"doc":"This crate provides a native implementation of regular expressions that is heavily based on RE2 both in syntax and in implementation. Notably, backreferences and arbitrary lookahead/lookbehind assertions are not provided. In return, regular expression searching provided by this package has excellent worst-case performance. The specific syntax supported is documented further down.","items":[[3,"RegexBuilder","regex","A configurable builder for a regular expression.",null,null],[3,"RegexSet","","Match multiple (possibly overlapping) regular expressions in a single scan.",null,null],[3,"SetMatches","","A set of matches returned by a regex set.",null,null],[3,"SetMatchesIntoIter","","An owned iterator over the set of matches from a regex set.",null,null],[3,"SetMatchesIter","","A borrowed iterator over the set of matches from a regex set.",null,null],[3,"Regex","","A compiled regular expression for matching Unicode strings.",null,null],[3,"Captures","","Captures represents a group of captured strings for a single match.",null,null],[3,"SubCaptures","","An iterator over capture groups for a particular match of a regular expression.",null,null],[3,"SubCapturesPos","","An iterator over capture group positions for a particular match of a regular expression.",null,null],[3,"SubCapturesNamed","","An Iterator over named capture groups as a tuple with the group name and the value.",null,null],[3,"CaptureNames","","An iterator over the names of all possible captures.",null,null],[3,"FindCaptures","","An iterator that yields all non-overlapping capture groups matching a particular regular expression.",null,null],[3,"FindMatches","","An iterator over all non-overlapping matches for a particular string.",null,null],[3,"NoExpand","","NoExpand indicates literal string replacement.",null,null],[12,"0","","",0,null],[3,"RegexSplits","","Yields all substrings delimited by a regular expression match.",null,null],[3,"RegexSplitsN","","Yields at most `N` substrings delimited by a regular expression match.",null,null],[4,"Error","","An error that occurred during parsing or compiling a regular expression.",null,null],[13,"Syntax","","A syntax error.",1,null],[13,"CompiledTooBig","","The compiled program exceeded the set size limit. The argument is the size limit imposed.",1,null],[13,"InvalidSet","","DEPRECATED: Will be removed on next major version bump.",1,null],[5,"quote","","Escapes all regular expression meta characters in `text`.",null,{"inputs":[{"name":"str"}],"output":{"name":"string"}}],[5,"is_match","","Tests if the given regular expression matches somewhere in the text given.",null,{"inputs":[{"name":"str"},{"name":"str"}],"output":{"name":"result"}}],[0,"bytes","","Match regular expressions on arbitrary bytes.",null,null],[3,"RegexBuilder","regex::bytes","A configurable builder for a regular expression.",null,null],[3,"RegexSet","","Match multiple (possibly overlapping) regular expressions in a single scan.",null,null],[3,"SetMatches","","A set of matches returned by a regex set.",null,null],[3,"SetMatchesIntoIter","","An owned iterator over the set of matches from a regex set.",null,null],[3,"SetMatchesIter","","A borrowed iterator over the set of matches from a regex set.",null,null],[3,"Regex","","A compiled regular expression for matching arbitrary bytes.",null,null],[3,"FindMatches","","An iterator over all non-overlapping matches for a particular string.",null,null],[3,"FindCaptures","","An iterator that yields all non-overlapping capture groups matching a particular regular expression.",null,null],[3,"Splits","","Yields all substrings delimited by a regular expression match.",null,null],[3,"SplitsN","","Yields at most `N` substrings delimited by a regular expression match.",null,null],[3,"CaptureNames","","An iterator over the names of all possible captures.",null,null],[3,"Captures","","Captures represents a group of captured byte strings for a single match.",null,null],[3,"SubCaptures","","An iterator over capture groups for a particular match of a regular expression.",null,null],[3,"SubCapturesPos","","An iterator over capture group positions for a particular match of a regular expression.",null,null],[3,"SubCapturesNamed","","An Iterator over named capture groups as a tuple with the group name and the value.",null,null],[3,"NoExpand","","NoExpand indicates literal byte string replacement.",null,null],[12,"0","","",2,null],[8,"Replacer","","Replacer describes types that can be used to replace matches in a byte string.",null,null],[10,"replace_append","","Appends text to `dst` to replace the current match.",3,{"inputs":[{"name":"self"},{"name":"captures"},{"name":"vec"}],"output":null}],[11,"no_expansion","","Return a fixed unchanging replacement byte string.",3,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","regex","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"description","","",1,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"cause","","",1,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","","",1,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"from","","",1,{"inputs":[{"name":"error"}],"output":{"name":"error"}}],[11,"new","regex::bytes","Create a new regular expression builder with the given pattern.",4,{"inputs":[{"name":"str"}],"output":{"name":"regexbuilder"}}],[11,"compile","","Consume the builder and compile the regular expression.",4,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"case_insensitive","","Set the value for the case insensitive (`i`) flag.",4,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"multi_line","","Set the value for the multi-line matching (`m`) flag.",4,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"dot_matches_new_line","","Set the value for the any character (`s`) flag, where in `.` matches anything when `s` is set and matches anything except for new line when it is not set (the default).",4,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"swap_greed","","Set the value for the greedy swap (`U`) flag.",4,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"ignore_whitespace","","Set the value for the ignore whitespace (`x`) flag.",4,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"unicode","","Set the value for the Unicode (`u`) flag.",4,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"size_limit","","Set the approximate size limit of the compiled regular expression.",4,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"regexbuilder"}}],[11,"dfa_size_limit","","Set the approximate size of the cache used by the DFA.",4,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"regexbuilder"}}],[11,"new","regex","Create a new regular expression builder with the given pattern.",5,{"inputs":[{"name":"str"}],"output":{"name":"regexbuilder"}}],[11,"compile","","Consume the builder and compile the regular expression.",5,{"inputs":[{"name":"self"}],"output":{"name":"result"}}],[11,"case_insensitive","","Set the value for the case insensitive (`i`) flag.",5,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"multi_line","","Set the value for the multi-line matching (`m`) flag.",5,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"dot_matches_new_line","","Set the value for the any character (`s`) flag, where in `.` matches anything when `s` is set and matches anything except for new line when it is not set (the default).",5,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"swap_greed","","Set the value for the greedy swap (`U`) flag.",5,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"ignore_whitespace","","Set the value for the ignore whitespace (`x`) flag.",5,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"unicode","","Set the value for the Unicode (`u`) flag.",5,{"inputs":[{"name":"self"},{"name":"bool"}],"output":{"name":"regexbuilder"}}],[11,"size_limit","","Set the approximate size limit of the compiled regular expression.",5,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"regexbuilder"}}],[11,"dfa_size_limit","","Set the approximate size of the cache used by the DFA.",5,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"regexbuilder"}}],[11,"no_expansion","regex::bytes","Return a fixed unchanging replacement byte string.",3,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"clone","","",6,{"inputs":[{"name":"self"}],"output":{"name":"regex"}}],[11,"fmt","","Shows the original regular expression.",6,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","Shows the original regular expression.",6,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"from_str","","Attempts to parse a string into a regular expression",6,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"new","","Compiles a regular expression. Once compiled, it can be used repeatedly to search, split or replace text in a string.",6,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"with_size_limit","","Compiles a regular expression with the given size limit.",6,{"inputs":[{"name":"usize"},{"name":"str"}],"output":{"name":"result"}}],[11,"is_match","","Returns true if and only if the regex matches the string given.",6,null],[11,"find","","Returns the start and end byte range of the leftmost-first match in `text`. If no match exists, then `None` is returned.",6,null],[11,"find_iter","","Returns an iterator for each successive non-overlapping match in `text`, returning the start and end byte indices with respect to `text`.",6,null],[11,"captures","","Returns the capture groups corresponding to the leftmost-first match in `text`. Capture group `0` always corresponds to the entire match. If no match is found, then `None` is returned.",6,null],[11,"captures_iter","","Returns an iterator over all the non-overlapping capture groups matched in `text`. This is operationally the same as `find_iter`, except it yields information about submatches.",6,null],[11,"split","","Returns an iterator of substrings of `text` delimited by a match of the regular expression. Namely, each element of the iterator corresponds to text that isn't matched by the regular expression.",6,null],[11,"splitn","","Returns an iterator of at most `limit` substrings of `text` delimited by a match of the regular expression. (A `limit` of `0` will return no substrings.) Namely, each element of the iterator corresponds to text that isn't matched by the regular expression. The remainder of the string that is not split will be the last element in the iterator.",6,null],[11,"replace","","Replaces the leftmost-first match with the replacement provided. The replacement can be a regular byte string (where `$N` and `$name` are expanded to match capture groups) or a function that takes the matches' `Captures` and returns the replaced byte string.",6,null],[11,"replace_all","","Replaces all non-overlapping matches in `text` with the replacement provided. This is the same as calling `replacen` with `limit` set to `0`.",6,null],[11,"replacen","","Replaces at most `limit` non-overlapping matches in `text` with the replacement provided. If `limit` is 0, then all non-overlapping matches are replaced.",6,null],[11,"shortest_match","","Returns the end location of a match in the text given.",6,null],[11,"as_str","","Returns the original string of this regex.",6,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"capture_names","","Returns an iterator over the capture names.",6,{"inputs":[{"name":"self"}],"output":{"name":"capturenames"}}],[11,"captures_len","","Returns the number of captures.",6,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"next","","",7,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",8,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",9,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",10,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",11,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"size_hint","","",11,null],[11,"pos","","Returns the start and end positions of the Nth capture group. Returns `None` if `i` is not a valid capture group or if the capture group did not match anything. The positions returned are always byte indices with respect to the original byte string matched.",12,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"option"}}],[11,"at","","Returns the matched string for the capture group `i`. If `i` isn't a valid capture group or didn't match anything, then `None` is returned.",12,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"option"}}],[11,"name","","Returns the matched string for the capture group named `name`. If `name` isn't a valid capture group or didn't match anything, then `None` is returned.",12,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"option"}}],[11,"iter","","Creates an iterator of all the capture groups in order of appearance in the regular expression.",12,{"inputs":[{"name":"self"}],"output":{"name":"subcaptures"}}],[11,"iter_pos","","Creates an iterator of all the capture group positions in order of appearance in the regular expression. Positions are byte indices in terms of the original string matched.",12,{"inputs":[{"name":"self"}],"output":{"name":"subcapturespos"}}],[11,"iter_named","","Creates an iterator of all named groups as an tuple with the group name and the value. The iterator returns these values in arbitrary order.",12,{"inputs":[{"name":"self"}],"output":{"name":"subcapturesnamed"}}],[11,"expand","","Expands all instances of `$name` in `text` to the corresponding capture group `name`, and writes them to the `dst` buffer given.",12,null],[11,"len","","Returns the number of captured groups.",12,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"is_empty","","Returns true if and only if there are no captured groups.",12,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"fmt","","",12,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"index","","",12,null],[11,"index","","",12,null],[11,"next","","",13,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",14,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",15,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"replace_append","","",2,{"inputs":[{"name":"self"},{"name":"captures"},{"name":"vec"}],"output":null}],[11,"no_expansion","","",2,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"clone","regex","",16,{"inputs":[{"name":"self"}],"output":{"name":"regexset"}}],[11,"new","","Create a new regex set with the given regular expressions.",16,{"inputs":[{"name":"i"}],"output":{"name":"result"}}],[11,"is_match","","Returns true if and only if one of the regexes in this set matches the text given.",16,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"bool"}}],[11,"matches","","Returns the set of regular expressions that match in the given text.",16,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"setmatches"}}],[11,"len","","Returns the total number of regular expressions in this set.",16,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"clone","","",17,{"inputs":[{"name":"self"}],"output":{"name":"setmatches"}}],[11,"fmt","","",17,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"matched_any","","Whether this set contains any matches.",17,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"matched","","Whether the regex at the given index matched.",17,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"bool"}}],[11,"len","","The total number of regexes in the set that created these matches.",17,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"iter","","Returns an iterator over indexes in the regex that matched.",17,{"inputs":[{"name":"self"}],"output":{"name":"setmatchesiter"}}],[11,"into_iter","","",17,null],[11,"next","","",18,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next_back","","",18,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"clone","","",19,{"inputs":[{"name":"self"}],"output":{"name":"setmatchesiter"}}],[11,"next","","",19,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next_back","","",19,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","","",16,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","regex::bytes","",20,{"inputs":[{"name":"self"}],"output":{"name":"regexset"}}],[11,"new","","Create a new regex set with the given regular expressions.",20,{"inputs":[{"name":"i"}],"output":{"name":"result"}}],[11,"is_match","","Returns true if and only if one of the regexes in this set matches the text given.",20,null],[11,"matches","","Returns the set of regular expressions that match in the given text.",20,null],[11,"len","","Returns the total number of regular expressions in this set.",20,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"clone","","",21,{"inputs":[{"name":"self"}],"output":{"name":"setmatches"}}],[11,"fmt","","",21,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"matched_any","","Whether this set contains any matches.",21,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"matched","","Whether the regex at the given index matched.",21,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"bool"}}],[11,"len","","The total number of regexes in the set that created these matches.",21,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"iter","","Returns an iterator over indexes in the regex that matched.",21,{"inputs":[{"name":"self"}],"output":{"name":"setmatchesiter"}}],[11,"into_iter","","",21,null],[11,"next","","",22,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next_back","","",22,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"clone","","",23,{"inputs":[{"name":"self"}],"output":{"name":"setmatchesiter"}}],[11,"next","","",23,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next_back","","",23,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"fmt","","",20,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"clone","regex","",24,{"inputs":[{"name":"self"}],"output":{"name":"regex"}}],[11,"fmt","","Shows the original regular expression.",24,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"fmt","","Shows the original regular expression.",24,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"eq","","",24,{"inputs":[{"name":"self"},{"name":"regex"}],"output":{"name":"bool"}}],[11,"from_str","","Attempts to parse a string into a regular expression",24,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"new","","Compiles a regular expression. Once compiled, it can be used repeatedly to search, split or replace text in a string.",24,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"with_size_limit","","Compiles a regular expression with the given size limit.",24,{"inputs":[{"name":"usize"},{"name":"str"}],"output":{"name":"result"}}],[11,"is_match","","Returns true if and only if the regex matches the string given.",24,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"bool"}}],[11,"find","","Returns the start and end byte range of the leftmost-first match in `text`. If no match exists, then `None` is returned.",24,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"option"}}],[11,"find_iter","","Returns an iterator for each successive non-overlapping match in `text`, returning the start and end byte indices with respect to `text`.",24,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"findmatches"}}],[11,"captures","","Returns the capture groups corresponding to the leftmost-first match in `text`. Capture group `0` always corresponds to the entire match. If no match is found, then `None` is returned.",24,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"option"}}],[11,"captures_iter","","Returns an iterator over all the non-overlapping capture groups matched in `text`. This is operationally the same as `find_iter`, except it yields information about submatches.",24,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"findcaptures"}}],[11,"split","","Returns an iterator of substrings of `text` delimited by a match of the regular expression. Namely, each element of the iterator corresponds to text that isn't matched by the regular expression.",24,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"regexsplits"}}],[11,"splitn","","Returns an iterator of at most `limit` substrings of `text` delimited by a match of the regular expression. (A `limit` of `0` will return no substrings.) Namely, each element of the iterator corresponds to text that isn't matched by the regular expression. The remainder of the string that is not split will be the last element in the iterator.",24,{"inputs":[{"name":"self"},{"name":"str"},{"name":"usize"}],"output":{"name":"regexsplitsn"}}],[11,"replace","","Replaces the leftmost-first match with the replacement provided. The replacement can be a regular string (where `$N` and `$name` are expanded to match capture groups) or a function that takes the matches' `Captures` and returns the replaced string.",24,{"inputs":[{"name":"self"},{"name":"str"},{"name":"r"}],"output":{"name":"string"}}],[11,"replace_all","","Replaces all non-overlapping matches in `text` with the replacement provided. This is the same as calling `replacen` with `limit` set to `0`.",24,{"inputs":[{"name":"self"},{"name":"str"},{"name":"r"}],"output":{"name":"string"}}],[11,"replacen","","Replaces at most `limit` non-overlapping matches in `text` with the replacement provided. If `limit` is 0, then all non-overlapping matches are replaced.",24,{"inputs":[{"name":"self"},{"name":"str"},{"name":"usize"},{"name":"r"}],"output":{"name":"string"}}],[11,"shortest_match","","Returns the end location of a match in the text given.",24,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"option"}}],[11,"as_str","","Returns the original string of this regex.",24,{"inputs":[{"name":"self"}],"output":{"name":"str"}}],[11,"capture_names","","Returns an iterator over the capture names.",24,{"inputs":[{"name":"self"}],"output":{"name":"capturenames"}}],[11,"captures_len","","Returns the number of captures.",24,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"next","","",25,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"size_hint","","",25,null],[11,"reg_replace","","",0,{"inputs":[{"name":"self"},{"name":"captures"}],"output":{"name":"cow"}}],[11,"no_expand","","",0,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",26,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",27,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"pos","","Returns the start and end positions of the Nth capture group. Returns `None` if `i` is not a valid capture group or if the capture group did not match anything. The positions returned are always byte indices with respect to the original string matched.",28,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"option"}}],[11,"at","","Returns the matched string for the capture group `i`. If `i` isn't a valid capture group or didn't match anything, then `None` is returned.",28,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"option"}}],[11,"name","","Returns the matched string for the capture group named `name`. If `name` isn't a valid capture group or didn't match anything, then `None` is returned.",28,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"option"}}],[11,"iter","","Creates an iterator of all the capture groups in order of appearance in the regular expression.",28,{"inputs":[{"name":"self"}],"output":{"name":"subcaptures"}}],[11,"iter_pos","","Creates an iterator of all the capture group positions in order of appearance in the regular expression. Positions are byte indices in terms of the original string matched.",28,{"inputs":[{"name":"self"}],"output":{"name":"subcapturespos"}}],[11,"iter_named","","Creates an iterator of all named groups as an tuple with the group name and the value. The iterator returns these values in arbitrary order.",28,{"inputs":[{"name":"self"}],"output":{"name":"subcapturesnamed"}}],[11,"expand","","Expands all instances of `$name` in `text` to the corresponding capture group `name`.",28,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"string"}}],[11,"len","","Returns the number of captured groups.",28,{"inputs":[{"name":"self"}],"output":{"name":"usize"}}],[11,"is_empty","","Returns true if and only if there are no captured groups.",28,{"inputs":[{"name":"self"}],"output":{"name":"bool"}}],[11,"fmt","","",28,{"inputs":[{"name":"self"},{"name":"formatter"}],"output":{"name":"result"}}],[11,"index","","",28,{"inputs":[{"name":"self"},{"name":"usize"}],"output":{"name":"str"}}],[11,"index","","",28,{"inputs":[{"name":"self"},{"name":"str"}],"output":{"name":"str"}}],[11,"next","","",29,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",30,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",31,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",32,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"next","","",33,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[8,"Replacer","","Replacer describes types that can be used to replace matches in a string.",null,null],[10,"reg_replace","","Returns a possibly owned string that is used to replace the match corresponding to the `caps` capture group.",34,{"inputs":[{"name":"self"},{"name":"captures"}],"output":{"name":"cow"}}],[11,"no_expand","","Returns a possibly owned string that never needs expansion.",34,{"inputs":[{"name":"self"}],"output":{"name":"option"}}],[11,"no_expand","","Returns a possibly owned string that never needs expansion.",34,{"inputs":[{"name":"self"}],"output":{"name":"option"}}]],"paths":[[3,"NoExpand"],[4,"Error"],[3,"NoExpand"],[8,"Replacer"],[3,"RegexBuilder"],[3,"RegexBuilder"],[3,"Regex"],[3,"FindMatches"],[3,"FindCaptures"],[3,"Splits"],[3,"SplitsN"],[3,"CaptureNames"],[3,"Captures"],[3,"SubCaptures"],[3,"SubCapturesPos"],[3,"SubCapturesNamed"],[3,"RegexSet"],[3,"SetMatches"],[3,"SetMatchesIntoIter"],[3,"SetMatchesIter"],[3,"RegexSet"],[3,"SetMatches"],[3,"SetMatchesIntoIter"],[3,"SetMatchesIter"],[3,"Regex"],[3,"CaptureNames"],[3,"RegexSplits"],[3,"RegexSplitsN"],[3,"Captures"],[3,"SubCaptures"],[3,"SubCapturesPos"],[3,"SubCapturesNamed"],[3,"FindCaptures"],[3,"FindMatches"],[8,"Replacer"]]}; searchIndex["regex_syntax"] = {"doc":"This crate provides a regular expression parser and an abstract syntax for regular expressions. The abstract syntax is defined by the `Expr` type. The concrete syntax is enumerated in the `regex` crate documentation.","items":[[3,"Literals","regex_syntax","A set of literal byte strings extracted from a regular expression.",null,null],[3,"Lit","","A single member of a set of literals extracted from a regular expression.",null,null],[3,"CharClass","","A character class.",null,null],[3,"ClassRange","","A single inclusive range in a character class.",null,null],[12,"start","","The start character of the range.",0,null],[12,"end","","The end character of the range.",0,null],[3,"ByteClass","","A byte class for byte ranges only.",null,null],[3,"ByteRange","","A single inclusive range in a byte class.",null,null],[12,"start","","The start byte of the range.",1,null],[12,"end","","The end byte of the range.",1,null],[3,"ExprBuilder","","A builder for configuring regular expression parsing.",null,null],[3,"Error","","A parse error.",null,null],[4,"Expr","","A regular expression abstract syntax tree.",null,null],[13,"Empty","","An empty regex (which never matches any text).",2,null],[13,"Literal","","A sequence of one or more literal characters to be matched.",2,null],[12,"chars","regex_syntax::Expr","The characters.",2,null],[12,"casei","","Whether to match case insensitively.",2,null],[13,"LiteralBytes","regex_syntax","A sequence of one or more literal bytes to be matched.",2,null],[12,"bytes","regex_syntax::Expr","The bytes.",2,null],[12,"casei","","Whether to match case insensitively.",2,null],[13,"AnyChar","regex_syntax","Match any character.",2,null],[13,"AnyCharNoNL","","Match any character, excluding new line (`0xA`).",2,null],[13,"AnyByte","","Match any byte.",2,null],[13,"AnyByteNoNL","","Match any byte, excluding new line (`0xA`).",2,null],[13,"Class","","A character class.",2,null],[13,"ClassBytes","","A character class with byte ranges only.",2,null],[13,"StartLine","","Match the start of a line or beginning of input.",2,null],[13,"EndLine","","Match the end of a line or end of input.",2,null],[13,"StartText","","Match the beginning of input.",2,null],[13,"EndText","","Match the end of input.",2,null],[13,"WordBoundary","","Match a word boundary (word character on one side and a non-word character on the other).",2,null],[13,"NotWordBoundary","","Match a position that is not a word boundary (word or non-word characters on both sides).",2,null],[13,"WordBoundaryAscii","","Match an ASCII word boundary.",2,null],[13,"NotWordBoundaryAscii","","Match a position that is not an ASCII word boundary.",2,null],[13,"Group","","A group, possibly non-capturing.",2,null],[12,"e","regex_syntax::Expr","The expression inside the group.",2,null],[12,"i","","The capture index (starting at `1`) only for capturing groups.",2,null],[12,"name","","The capture name, only for capturing named groups.",2,null],[13,"Repeat","regex_syntax","A repeat operator (`?`, `*`, `+` or `{m,n}`).",2,null],[12,"e","regex_syntax::Expr","The expression to be repeated. Limited to literals, `.`, classes or grouped expressions.",2,null],[12,"r","","The type of repeat operator used.",2,null],[12,"greedy","","Whether the repeat is greedy (match the most) or not (match the least).",2,null],[13,"Concat","regex_syntax","A concatenation of expressions. Must be matched one after the other.",2,null],[13,"Alternate","","An alternation of expressions. Only one must match.",2,null],[4,"Repeater","","The type of a repeat operator expression.",null,null],[13,"ZeroOrOne","","Match zero or one (`?`).",3,null],[13,"ZeroOrMore","","Match zero or more (`*`).",3,null],[13,"OneOrMore","","Match one or more (`+`).",3,null],[13,"Range","","Match for at least `min` and at most `max` (`{m,n}`).",3,null],[12,"min","regex_syntax::Repeater","Lower bound on the number of matches.",3,null],[12,"max","","Optional upper bound on the number of matches.",3,null],[4,"ErrorKind","regex_syntax","The specific type of parse error that can occur.",null,null],[13,"DoubleFlagNegation","","A negation symbol is used twice in flag settings. e.g., `(?-i-s)`.",4,null],[13,"DuplicateCaptureName","","The same capture name was used more than once. e.g., `(?P.)(?P.)`.",4,null],[13,"EmptyAlternate","","An alternate is empty. e.g., `(|a)`.",4,null],[13,"EmptyCaptureName","","A capture group name is empty. e.g., `(?P<>a)`.",4,null],[13,"EmptyFlagNegation","","A negation symbol was not proceded by any flags. e.g., `(?i-)`.",4,null],[13,"EmptyGroup","","A group is empty. e.g., `()`.",4,null],[13,"InvalidBase10","","An invalid number was used in a counted repetition. e.g., `a{b}`.",4,null],[13,"InvalidBase16","","An invalid hexadecimal number was used in an escape sequence. e.g., `\\xAG`.",4,null],[13,"InvalidCaptureName","","An invalid capture name was used. e.g., `(?P<0a>b)`.",4,null],[13,"InvalidClassRange","","An invalid class range was givien. Specifically, when the start of the range is greater than the end. e.g., `[z-a]`.",4,null],[12,"start","regex_syntax::ErrorKind","The first character specified in the range.",4,null],[12,"end","","The second character specified in the range.",4,null],[13,"InvalidClassEscape","regex_syntax","An escape sequence was used in a character class where it is not allowed. e.g., `[a-\\pN]` or `[\\A]`.",4,null],[13,"InvalidRepeatRange","","An invalid counted repetition min/max was given. e.g., `a{2,1}`.",4,null],[12,"min","regex_syntax::ErrorKind","The first number specified in the repetition.",4,null],[12,"max","","The second number specified in the repetition.",4,null],[13,"InvalidScalarValue","regex_syntax","An invalid Unicode scalar value was used in a long hexadecimal sequence. e.g., `\\x{D800}`.",4,null],[13,"MissingBase10","","An empty counted repetition operator. e.g., `a{}`.",4,null],[13,"RepeaterExpectsExpr","","A repetition operator was not applied to an expression. e.g., `*`.",4,null],[13,"RepeaterUnexpectedExpr","","A repetition operator was applied to an expression that cannot be repeated. e.g., `a+*` or `a|*`.",4,null],[13,"UnclosedCaptureName","","A capture group name that is never closed. e.g., `(?P107 108 109 -110 -111 -112 -113 -114 -115 -116
 #![allow(missing_docs)]
 
@@ -183,6 +176,8 @@
 
 
 #[macro_export]
+/// Try to unwrap a `Result<T, E>`. If there is a value `T`, yield it,
+/// otherwise print a warning and `return ()` from the function.
 macro_rules! try_w {
     ($expr:expr) => {
         try_wr!($expr, ())
@@ -197,6 +192,8 @@
 
 
 #[macro_export]
+/// Try to unwrap a `Result<T, E>`. If there is a value `T`, yield it,
+/// otherwise print a warning and return from the function with the given value.
 macro_rules! try_wr {
     ($expr:expr, $ret:expr) => (match $expr {
         ::std::result::Result::Ok(val) => val,
@@ -225,6 +222,8 @@
 
 
 #[macro_export]
+/// Try to unwrap a `Result<T, E>`. If there is a value `T`, yield it,
+/// otherwise return from the function with the given value.
 macro_rules! try_r {
     ($expr:expr, $ret:expr) => (match $expr {
         ::std::result::Result::Ok(val) => val,
@@ -235,31 +234,18 @@
 }
 
 
-
 #[macro_export]
+/// Try to unwrap a `Result<T, E>`. If there is a value `T`, yield it,
+/// otherwise print an error and exit the program.
 macro_rules! try_e {
-    ($expr:expr) => {
-        try_er!($expr, ())
-    };
-    ($expr:expr, $fmt:expr, $($arg:tt)+) => {
-        try_er!($expr, (), $fmt, $(arg)+)
-    };
-    ($expr:expr, $fmt:expr) => {
-        try_er!($expr, (), $fmt)
-    }
-}
-
-
-#[macro_export]
-macro_rules! try_er {
-    ($expr:expr, $ret:expr) => (match $expr {
+    ($expr:expr) => (match $expr {
         ::std::result::Result::Ok(val) => val,
         ::std::result::Result::Err(err) => {
             error!("{:?}", err);
             ::std::process::exit(1);
         },
     });
-    ($expr:expr, $ret:expr, $fmt:expr) => (match $expr {
+    ($expr:expr, $fmt:expr) => (match $expr {
         ::std::result::Result::Ok(val) => val,
         ::std::result::Result::Err(err) => {
             error!("Original error: {:?}", err);
@@ -267,7 +253,7 @@
             std::process::exit(1);
         },
     });
-    ($expr:expr, $ret:expr, $fmt:expr, $($arg:tt)+) => (match $expr {
+    ($expr:expr, $fmt:expr, $($arg:tt)+) => (match $expr {
         ::std::result::Result::Ok(val) => val,
         ::std::result::Result::Err(err) => {
             error!("Original error: {:?}", err);
diff --git a/src/pnmixerlib/lib.rs.html b/src/pnmixerlib/lib.rs.html
index b2948c862..872e846d7 100644
--- a/src/pnmixerlib/lib.rs.html
+++ b/src/pnmixerlib/lib.rs.html
@@ -104,7 +104,65 @@
 59
 60
 61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
 
+//! PNMixer-rs is a mixer for the system tray.
+//!
+//! # Design Overview
+//!
+//! The lowest level part of the code is the sound backend. Only Alsa is supported
+//! at the moment, but more backends may be added in the future.
+//!
+//! The backend is hidden behind a frontend, defined in `audio.rs`. Only `audio.rs`
+//! deals with audio backends. This means that the whole of the code is blissfully
+//! ignorant of the audio backend in use.
+//!
+//! `audio.rs` is also in charge of emitting signals whenever a change happens.
+//! This means that PNMixer-rs design is quite signal-oriented, so to say.
+//!
+//! The ui code is nothing fancy. Each ui element...
+//!
+//! * is defined in a single file
+//! * strives to be standalone
+//! * accesses the sound system with function calls
+//! * listens to signals from the audio subsystem to update its appearance
+//!
+//! There's something you should keep in mind. Audio on a computer is a shared
+//! resource. PNMixer-rs isn't the only one that can change it. At any moment the
+//! audio volume may be modified by someone else, and we must update the ui
+//! accordingly. So listening to changes from the audio subsystem (and therefore
+//! having a signal-oriented design) is the most obvious solution to solve that
+//! problem.
+
+
 #![warn(missing_docs)]
 
 #![feature(alloc_system)]