gweather_sys/
lib.rs

1// Generated by gir (https://github.com/gtk-rs/gir @ 59e3912ac141)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git @ b41843dc1ee2)
4// DO NOT EDIT
5
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8    clippy::approx_constant,
9    clippy::type_complexity,
10    clippy::unreadable_literal,
11    clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use gio_sys as gio;
16use glib_sys as glib;
17use gobject_sys as gobject;
18
19#[cfg(unix)]
20#[allow(unused_imports)]
21use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
22#[allow(unused_imports)]
23use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
24#[allow(unused_imports)]
25use std::ffi::{
26    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
27};
28
29#[allow(unused_imports)]
30use glib::{gboolean, gconstpointer, gpointer, GType};
31
32// Aliases
33pub type GWeatherMoonLatitude = c_double;
34pub type GWeatherMoonPhase = c_double;
35
36// Enums
37pub type GWeatherConditionPhenomenon = c_int;
38pub const GWEATHER_PHENOMENON_INVALID: GWeatherConditionPhenomenon = -1;
39pub const GWEATHER_PHENOMENON_NONE: GWeatherConditionPhenomenon = 0;
40pub const GWEATHER_PHENOMENON_DRIZZLE: GWeatherConditionPhenomenon = 1;
41pub const GWEATHER_PHENOMENON_RAIN: GWeatherConditionPhenomenon = 2;
42pub const GWEATHER_PHENOMENON_SNOW: GWeatherConditionPhenomenon = 3;
43pub const GWEATHER_PHENOMENON_SNOW_GRAINS: GWeatherConditionPhenomenon = 4;
44pub const GWEATHER_PHENOMENON_ICE_CRYSTALS: GWeatherConditionPhenomenon = 5;
45pub const GWEATHER_PHENOMENON_ICE_PELLETS: GWeatherConditionPhenomenon = 6;
46pub const GWEATHER_PHENOMENON_HAIL: GWeatherConditionPhenomenon = 7;
47pub const GWEATHER_PHENOMENON_SMALL_HAIL: GWeatherConditionPhenomenon = 8;
48pub const GWEATHER_PHENOMENON_UNKNOWN_PRECIPITATION: GWeatherConditionPhenomenon = 9;
49pub const GWEATHER_PHENOMENON_MIST: GWeatherConditionPhenomenon = 10;
50pub const GWEATHER_PHENOMENON_FOG: GWeatherConditionPhenomenon = 11;
51pub const GWEATHER_PHENOMENON_SMOKE: GWeatherConditionPhenomenon = 12;
52pub const GWEATHER_PHENOMENON_VOLCANIC_ASH: GWeatherConditionPhenomenon = 13;
53pub const GWEATHER_PHENOMENON_SAND: GWeatherConditionPhenomenon = 14;
54pub const GWEATHER_PHENOMENON_HAZE: GWeatherConditionPhenomenon = 15;
55pub const GWEATHER_PHENOMENON_SPRAY: GWeatherConditionPhenomenon = 16;
56pub const GWEATHER_PHENOMENON_DUST: GWeatherConditionPhenomenon = 17;
57pub const GWEATHER_PHENOMENON_SQUALL: GWeatherConditionPhenomenon = 18;
58pub const GWEATHER_PHENOMENON_SANDSTORM: GWeatherConditionPhenomenon = 19;
59pub const GWEATHER_PHENOMENON_DUSTSTORM: GWeatherConditionPhenomenon = 20;
60pub const GWEATHER_PHENOMENON_FUNNEL_CLOUD: GWeatherConditionPhenomenon = 21;
61pub const GWEATHER_PHENOMENON_TORNADO: GWeatherConditionPhenomenon = 22;
62pub const GWEATHER_PHENOMENON_DUST_WHIRLS: GWeatherConditionPhenomenon = 23;
63pub const GWEATHER_PHENOMENON_LAST: GWeatherConditionPhenomenon = 24;
64
65pub type GWeatherConditionQualifier = c_int;
66pub const GWEATHER_QUALIFIER_INVALID: GWeatherConditionQualifier = -1;
67pub const GWEATHER_QUALIFIER_NONE: GWeatherConditionQualifier = 0;
68pub const GWEATHER_QUALIFIER_VICINITY: GWeatherConditionQualifier = 1;
69pub const GWEATHER_QUALIFIER_LIGHT: GWeatherConditionQualifier = 2;
70pub const GWEATHER_QUALIFIER_MODERATE: GWeatherConditionQualifier = 3;
71pub const GWEATHER_QUALIFIER_HEAVY: GWeatherConditionQualifier = 4;
72pub const GWEATHER_QUALIFIER_SHALLOW: GWeatherConditionQualifier = 5;
73pub const GWEATHER_QUALIFIER_PATCHES: GWeatherConditionQualifier = 6;
74pub const GWEATHER_QUALIFIER_PARTIAL: GWeatherConditionQualifier = 7;
75pub const GWEATHER_QUALIFIER_THUNDERSTORM: GWeatherConditionQualifier = 8;
76pub const GWEATHER_QUALIFIER_BLOWING: GWeatherConditionQualifier = 9;
77pub const GWEATHER_QUALIFIER_SHOWERS: GWeatherConditionQualifier = 10;
78pub const GWEATHER_QUALIFIER_DRIFTING: GWeatherConditionQualifier = 11;
79pub const GWEATHER_QUALIFIER_FREEZING: GWeatherConditionQualifier = 12;
80pub const GWEATHER_QUALIFIER_LAST: GWeatherConditionQualifier = 13;
81
82pub type GWeatherDistanceUnit = c_int;
83pub const GWEATHER_DISTANCE_UNIT_INVALID: GWeatherDistanceUnit = 0;
84pub const GWEATHER_DISTANCE_UNIT_DEFAULT: GWeatherDistanceUnit = 1;
85pub const GWEATHER_DISTANCE_UNIT_METERS: GWeatherDistanceUnit = 2;
86pub const GWEATHER_DISTANCE_UNIT_KM: GWeatherDistanceUnit = 3;
87pub const GWEATHER_DISTANCE_UNIT_MILES: GWeatherDistanceUnit = 4;
88
89pub type GWeatherLocationLevel = c_int;
90pub const GWEATHER_LOCATION_WORLD: GWeatherLocationLevel = 0;
91pub const GWEATHER_LOCATION_REGION: GWeatherLocationLevel = 1;
92pub const GWEATHER_LOCATION_COUNTRY: GWeatherLocationLevel = 2;
93pub const GWEATHER_LOCATION_ADM1: GWeatherLocationLevel = 3;
94pub const GWEATHER_LOCATION_CITY: GWeatherLocationLevel = 4;
95pub const GWEATHER_LOCATION_WEATHER_STATION: GWeatherLocationLevel = 5;
96pub const GWEATHER_LOCATION_DETACHED: GWeatherLocationLevel = 6;
97pub const GWEATHER_LOCATION_NAMED_TIMEZONE: GWeatherLocationLevel = 7;
98
99pub type GWeatherPressureUnit = c_int;
100pub const GWEATHER_PRESSURE_UNIT_INVALID: GWeatherPressureUnit = 0;
101pub const GWEATHER_PRESSURE_UNIT_DEFAULT: GWeatherPressureUnit = 1;
102pub const GWEATHER_PRESSURE_UNIT_KPA: GWeatherPressureUnit = 2;
103pub const GWEATHER_PRESSURE_UNIT_HPA: GWeatherPressureUnit = 3;
104pub const GWEATHER_PRESSURE_UNIT_MB: GWeatherPressureUnit = 4;
105pub const GWEATHER_PRESSURE_UNIT_MM_HG: GWeatherPressureUnit = 5;
106pub const GWEATHER_PRESSURE_UNIT_INCH_HG: GWeatherPressureUnit = 6;
107pub const GWEATHER_PRESSURE_UNIT_ATM: GWeatherPressureUnit = 7;
108
109pub type GWeatherSky = c_int;
110pub const GWEATHER_SKY_INVALID: GWeatherSky = -1;
111pub const GWEATHER_SKY_CLEAR: GWeatherSky = 0;
112pub const GWEATHER_SKY_BROKEN: GWeatherSky = 1;
113pub const GWEATHER_SKY_SCATTERED: GWeatherSky = 2;
114pub const GWEATHER_SKY_FEW: GWeatherSky = 3;
115pub const GWEATHER_SKY_OVERCAST: GWeatherSky = 4;
116pub const GWEATHER_SKY_LAST: GWeatherSky = 5;
117
118pub type GWeatherSpeedUnit = c_int;
119pub const GWEATHER_SPEED_UNIT_INVALID: GWeatherSpeedUnit = 0;
120pub const GWEATHER_SPEED_UNIT_DEFAULT: GWeatherSpeedUnit = 1;
121pub const GWEATHER_SPEED_UNIT_MS: GWeatherSpeedUnit = 2;
122pub const GWEATHER_SPEED_UNIT_KPH: GWeatherSpeedUnit = 3;
123pub const GWEATHER_SPEED_UNIT_MPH: GWeatherSpeedUnit = 4;
124pub const GWEATHER_SPEED_UNIT_KNOTS: GWeatherSpeedUnit = 5;
125pub const GWEATHER_SPEED_UNIT_BFT: GWeatherSpeedUnit = 6;
126
127pub type GWeatherTemperatureUnit = c_int;
128pub const GWEATHER_TEMP_UNIT_INVALID: GWeatherTemperatureUnit = 0;
129pub const GWEATHER_TEMP_UNIT_DEFAULT: GWeatherTemperatureUnit = 1;
130pub const GWEATHER_TEMP_UNIT_KELVIN: GWeatherTemperatureUnit = 2;
131pub const GWEATHER_TEMP_UNIT_CENTIGRADE: GWeatherTemperatureUnit = 3;
132pub const GWEATHER_TEMP_UNIT_FAHRENHEIT: GWeatherTemperatureUnit = 4;
133
134pub type GWeatherWindDirection = c_int;
135pub const GWEATHER_WIND_INVALID: GWeatherWindDirection = -1;
136pub const GWEATHER_WIND_VARIABLE: GWeatherWindDirection = 0;
137pub const GWEATHER_WIND_N: GWeatherWindDirection = 1;
138pub const GWEATHER_WIND_NNE: GWeatherWindDirection = 2;
139pub const GWEATHER_WIND_NE: GWeatherWindDirection = 3;
140pub const GWEATHER_WIND_ENE: GWeatherWindDirection = 4;
141pub const GWEATHER_WIND_E: GWeatherWindDirection = 5;
142pub const GWEATHER_WIND_ESE: GWeatherWindDirection = 6;
143pub const GWEATHER_WIND_SE: GWeatherWindDirection = 7;
144pub const GWEATHER_WIND_SSE: GWeatherWindDirection = 8;
145pub const GWEATHER_WIND_S: GWeatherWindDirection = 9;
146pub const GWEATHER_WIND_SSW: GWeatherWindDirection = 10;
147pub const GWEATHER_WIND_SW: GWeatherWindDirection = 11;
148pub const GWEATHER_WIND_WSW: GWeatherWindDirection = 12;
149pub const GWEATHER_WIND_W: GWeatherWindDirection = 13;
150pub const GWEATHER_WIND_WNW: GWeatherWindDirection = 14;
151pub const GWEATHER_WIND_NW: GWeatherWindDirection = 15;
152pub const GWEATHER_WIND_NNW: GWeatherWindDirection = 16;
153pub const GWEATHER_WIND_LAST: GWeatherWindDirection = 17;
154
155// Flags
156pub type GWeatherFormatOptions = c_uint;
157pub const GWEATHER_FORMAT_OPTION_DEFAULT: GWeatherFormatOptions = 0;
158pub const GWEATHER_FORMAT_OPTION_SENTENCE_CAPITALIZATION: GWeatherFormatOptions = 1;
159pub const GWEATHER_FORMAT_OPTION_NO_CAPITALIZATION: GWeatherFormatOptions = 2;
160
161pub type GWeatherProvider = c_uint;
162pub const GWEATHER_PROVIDER_NONE: GWeatherProvider = 0;
163pub const GWEATHER_PROVIDER_METAR: GWeatherProvider = 1;
164pub const GWEATHER_PROVIDER_IWIN: GWeatherProvider = 4;
165pub const GWEATHER_PROVIDER_MET_NO: GWeatherProvider = 8;
166pub const GWEATHER_PROVIDER_OWM: GWeatherProvider = 16;
167pub const GWEATHER_PROVIDER_NWS: GWeatherProvider = 32;
168pub const GWEATHER_PROVIDER_ALL: GWeatherProvider = 61;
169
170// Callbacks
171pub type GWeatherFilterFunc =
172    Option<unsafe extern "C" fn(*mut GWeatherLocation, gpointer) -> gboolean>;
173
174// Records
175#[derive(Copy, Clone)]
176#[repr(C)]
177pub struct GWeatherConditions {
178    pub significant: gboolean,
179    pub phenomenon: GWeatherConditionPhenomenon,
180    pub qualifier: GWeatherConditionQualifier,
181}
182
183impl ::std::fmt::Debug for GWeatherConditions {
184    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
185        f.debug_struct(&format!("GWeatherConditions @ {self:p}"))
186            .field("significant", &self.significant)
187            .field("phenomenon", &self.phenomenon)
188            .field("qualifier", &self.qualifier)
189            .finish()
190    }
191}
192
193#[derive(Copy, Clone)]
194#[repr(C)]
195pub struct GWeatherInfoClass {
196    pub parent_class: gobject::GObjectClass,
197}
198
199impl ::std::fmt::Debug for GWeatherInfoClass {
200    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
201        f.debug_struct(&format!("GWeatherInfoClass @ {self:p}"))
202            .field("parent_class", &self.parent_class)
203            .finish()
204    }
205}
206
207#[derive(Copy, Clone)]
208#[repr(C)]
209pub struct GWeatherLocationClass {
210    pub parent_class: gobject::GObjectClass,
211}
212
213impl ::std::fmt::Debug for GWeatherLocationClass {
214    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
215        f.debug_struct(&format!("GWeatherLocationClass @ {self:p}"))
216            .field("parent_class", &self.parent_class)
217            .finish()
218    }
219}
220
221// Classes
222#[repr(C)]
223#[allow(dead_code)]
224pub struct GWeatherInfo {
225    _data: [u8; 0],
226    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
227}
228
229impl ::std::fmt::Debug for GWeatherInfo {
230    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
231        f.debug_struct(&format!("GWeatherInfo @ {self:p}")).finish()
232    }
233}
234
235#[repr(C)]
236#[allow(dead_code)]
237pub struct GWeatherLocation {
238    _data: [u8; 0],
239    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
240}
241
242impl ::std::fmt::Debug for GWeatherLocation {
243    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
244        f.debug_struct(&format!("GWeatherLocation @ {self:p}"))
245            .finish()
246    }
247}
248
249extern "C" {
250
251    //=========================================================================
252    // GWeatherConditionPhenomenon
253    //=========================================================================
254    pub fn gweather_phenomenon_get_type() -> GType;
255
256    //=========================================================================
257    // GWeatherConditionQualifier
258    //=========================================================================
259    pub fn gweather_qualifier_get_type() -> GType;
260
261    //=========================================================================
262    // GWeatherDistanceUnit
263    //=========================================================================
264    pub fn gweather_distance_unit_get_type() -> GType;
265
266    //=========================================================================
267    // GWeatherLocationLevel
268    //=========================================================================
269    pub fn gweather_location_level_get_type() -> GType;
270    pub fn gweather_location_level_to_string(level: GWeatherLocationLevel) -> *const c_char;
271
272    //=========================================================================
273    // GWeatherPressureUnit
274    //=========================================================================
275    pub fn gweather_pressure_unit_get_type() -> GType;
276
277    //=========================================================================
278    // GWeatherSky
279    //=========================================================================
280    pub fn gweather_sky_get_type() -> GType;
281    pub fn gweather_sky_to_string(sky: GWeatherSky) -> *const c_char;
282    pub fn gweather_sky_to_string_full(
283        sky: GWeatherSky,
284        options: GWeatherFormatOptions,
285    ) -> *const c_char;
286
287    //=========================================================================
288    // GWeatherSpeedUnit
289    //=========================================================================
290    pub fn gweather_speed_unit_get_type() -> GType;
291    pub fn gweather_speed_unit_to_string(unit: GWeatherSpeedUnit) -> *const c_char;
292
293    //=========================================================================
294    // GWeatherTemperatureUnit
295    //=========================================================================
296    pub fn gweather_temperature_unit_get_type() -> GType;
297    pub fn gweather_temperature_unit_to_real(
298        unit: GWeatherTemperatureUnit,
299    ) -> GWeatherTemperatureUnit;
300
301    //=========================================================================
302    // GWeatherWindDirection
303    //=========================================================================
304    pub fn gweather_wind_direction_get_type() -> GType;
305    pub fn gweather_wind_direction_to_string(wind: GWeatherWindDirection) -> *const c_char;
306    pub fn gweather_wind_direction_to_string_full(
307        wind: GWeatherWindDirection,
308        options: GWeatherFormatOptions,
309    ) -> *const c_char;
310
311    //=========================================================================
312    // GWeatherFormatOptions
313    //=========================================================================
314    pub fn gweather_format_options_get_type() -> GType;
315
316    //=========================================================================
317    // GWeatherProvider
318    //=========================================================================
319    pub fn gweather_provider_get_type() -> GType;
320
321    //=========================================================================
322    // GWeatherConditions
323    //=========================================================================
324    pub fn gweather_conditions_to_string(conditions: *mut GWeatherConditions) -> *const c_char;
325    pub fn gweather_conditions_to_string_full(
326        conditions: *mut GWeatherConditions,
327        options: GWeatherFormatOptions,
328    ) -> *const c_char;
329
330    //=========================================================================
331    // GWeatherInfo
332    //=========================================================================
333    pub fn gweather_info_get_type() -> GType;
334    pub fn gweather_info_new(location: *mut GWeatherLocation) -> *mut GWeatherInfo;
335    pub fn gweather_info_store_cache();
336    pub fn gweather_info_abort(info: *mut GWeatherInfo);
337    pub fn gweather_info_get_apparent(info: *mut GWeatherInfo) -> *mut c_char;
338    pub fn gweather_info_get_application_id(info: *mut GWeatherInfo) -> *const c_char;
339    pub fn gweather_info_get_attribution(info: *mut GWeatherInfo) -> *const c_char;
340    pub fn gweather_info_get_conditions(info: *mut GWeatherInfo) -> *mut c_char;
341    pub fn gweather_info_get_contact_info(info: *mut GWeatherInfo) -> *const c_char;
342    pub fn gweather_info_get_dew(info: *mut GWeatherInfo) -> *mut c_char;
343    pub fn gweather_info_get_enabled_providers(info: *mut GWeatherInfo) -> GWeatherProvider;
344    pub fn gweather_info_get_forecast_list(info: *mut GWeatherInfo) -> *mut glib::GSList;
345    pub fn gweather_info_get_humidity(info: *mut GWeatherInfo) -> *mut c_char;
346    pub fn gweather_info_get_icon_name(info: *mut GWeatherInfo) -> *const c_char;
347    pub fn gweather_info_get_location(info: *mut GWeatherInfo) -> *const GWeatherLocation;
348    pub fn gweather_info_get_location_name(info: *mut GWeatherInfo) -> *mut c_char;
349    pub fn gweather_info_get_pressure(info: *mut GWeatherInfo) -> *mut c_char;
350    pub fn gweather_info_get_sky(info: *mut GWeatherInfo) -> *mut c_char;
351    pub fn gweather_info_get_sunrise(info: *mut GWeatherInfo) -> *mut c_char;
352    pub fn gweather_info_get_sunset(info: *mut GWeatherInfo) -> *mut c_char;
353    pub fn gweather_info_get_symbolic_icon_name(info: *mut GWeatherInfo) -> *const c_char;
354    pub fn gweather_info_get_temp(info: *mut GWeatherInfo) -> *mut c_char;
355    pub fn gweather_info_get_temp_max(info: *mut GWeatherInfo) -> *mut c_char;
356    pub fn gweather_info_get_temp_min(info: *mut GWeatherInfo) -> *mut c_char;
357    pub fn gweather_info_get_temp_summary(info: *mut GWeatherInfo) -> *mut c_char;
358    pub fn gweather_info_get_upcoming_moonphases(
359        info: *mut GWeatherInfo,
360        phases: *mut time_t,
361    ) -> gboolean;
362    pub fn gweather_info_get_update(info: *mut GWeatherInfo) -> *mut c_char;
363    pub fn gweather_info_get_value_apparent(
364        info: *mut GWeatherInfo,
365        unit: GWeatherTemperatureUnit,
366        value: *mut c_double,
367    ) -> gboolean;
368    pub fn gweather_info_get_value_conditions(
369        info: *mut GWeatherInfo,
370        phenomenon: *mut GWeatherConditionPhenomenon,
371        qualifier: *mut GWeatherConditionQualifier,
372    ) -> gboolean;
373    pub fn gweather_info_get_value_dew(
374        info: *mut GWeatherInfo,
375        unit: GWeatherTemperatureUnit,
376        value: *mut c_double,
377    ) -> gboolean;
378    pub fn gweather_info_get_value_moonphase(
379        info: *mut GWeatherInfo,
380        value: *mut GWeatherMoonPhase,
381        lat: *mut GWeatherMoonLatitude,
382    ) -> gboolean;
383    pub fn gweather_info_get_value_pressure(
384        info: *mut GWeatherInfo,
385        unit: GWeatherPressureUnit,
386        value: *mut c_double,
387    ) -> gboolean;
388    pub fn gweather_info_get_value_sky(info: *mut GWeatherInfo, sky: *mut GWeatherSky) -> gboolean;
389    pub fn gweather_info_get_value_sunrise(
390        info: *mut GWeatherInfo,
391        value: *mut c_ulong,
392    ) -> gboolean;
393    pub fn gweather_info_get_value_sunset(info: *mut GWeatherInfo, value: *mut c_ulong)
394        -> gboolean;
395    pub fn gweather_info_get_value_temp(
396        info: *mut GWeatherInfo,
397        unit: GWeatherTemperatureUnit,
398        value: *mut c_double,
399    ) -> gboolean;
400    pub fn gweather_info_get_value_temp_max(
401        info: *mut GWeatherInfo,
402        unit: GWeatherTemperatureUnit,
403        value: *mut c_double,
404    ) -> gboolean;
405    pub fn gweather_info_get_value_temp_min(
406        info: *mut GWeatherInfo,
407        unit: GWeatherTemperatureUnit,
408        value: *mut c_double,
409    ) -> gboolean;
410    pub fn gweather_info_get_value_update(info: *mut GWeatherInfo, value: *mut c_long) -> gboolean;
411    pub fn gweather_info_get_value_visibility(
412        info: *mut GWeatherInfo,
413        unit: GWeatherDistanceUnit,
414        value: *mut c_double,
415    ) -> gboolean;
416    pub fn gweather_info_get_value_wind(
417        info: *mut GWeatherInfo,
418        unit: GWeatherSpeedUnit,
419        speed: *mut c_double,
420        direction: *mut GWeatherWindDirection,
421    ) -> gboolean;
422    pub fn gweather_info_get_visibility(info: *mut GWeatherInfo) -> *mut c_char;
423    pub fn gweather_info_get_weather_summary(info: *mut GWeatherInfo) -> *mut c_char;
424    pub fn gweather_info_get_wind(info: *mut GWeatherInfo) -> *mut c_char;
425    pub fn gweather_info_is_daytime(info: *mut GWeatherInfo) -> gboolean;
426    pub fn gweather_info_is_valid(info: *mut GWeatherInfo) -> gboolean;
427    pub fn gweather_info_network_error(info: *mut GWeatherInfo) -> gboolean;
428    pub fn gweather_info_next_sun_event(info: *mut GWeatherInfo) -> c_int;
429    pub fn gweather_info_set_application_id(info: *mut GWeatherInfo, application_id: *const c_char);
430    pub fn gweather_info_set_contact_info(info: *mut GWeatherInfo, contact_info: *const c_char);
431    pub fn gweather_info_set_enabled_providers(
432        info: *mut GWeatherInfo,
433        providers: GWeatherProvider,
434    );
435    pub fn gweather_info_set_location(info: *mut GWeatherInfo, location: *mut GWeatherLocation);
436    pub fn gweather_info_update(info: *mut GWeatherInfo);
437
438    //=========================================================================
439    // GWeatherLocation
440    //=========================================================================
441    pub fn gweather_location_get_type() -> GType;
442    pub fn gweather_location_new_detached(
443        name: *const c_char,
444        icao: *const c_char,
445        latitude: c_double,
446        longitude: c_double,
447    ) -> *mut GWeatherLocation;
448    pub fn gweather_location_detect_nearest_city_finish(
449        result: *mut gio::GAsyncResult,
450        error: *mut *mut glib::GError,
451    ) -> *mut GWeatherLocation;
452    pub fn gweather_location_get_world() -> *mut GWeatherLocation;
453    pub fn gweather_location_deserialize(
454        world: *mut GWeatherLocation,
455        serialized: *mut glib::GVariant,
456    ) -> *mut GWeatherLocation;
457    pub fn gweather_location_detect_nearest_city(
458        loc: *mut GWeatherLocation,
459        lat: c_double,
460        lon: c_double,
461        cancellable: *mut gio::GCancellable,
462        callback: gio::GAsyncReadyCallback,
463        user_data: gpointer,
464    );
465    pub fn gweather_location_equal(
466        one: *mut GWeatherLocation,
467        two: *mut GWeatherLocation,
468    ) -> gboolean;
469    pub fn gweather_location_find_by_country_code(
470        world: *mut GWeatherLocation,
471        country_code: *const c_char,
472    ) -> *mut GWeatherLocation;
473    pub fn gweather_location_find_by_station_code(
474        world: *mut GWeatherLocation,
475        station_code: *const c_char,
476    ) -> *mut GWeatherLocation;
477    pub fn gweather_location_find_nearest_city(
478        loc: *mut GWeatherLocation,
479        lat: c_double,
480        lon: c_double,
481    ) -> *mut GWeatherLocation;
482    pub fn gweather_location_find_nearest_city_full(
483        loc: *mut GWeatherLocation,
484        lat: c_double,
485        lon: c_double,
486        func: GWeatherFilterFunc,
487        user_data: gpointer,
488        destroy: glib::GDestroyNotify,
489    ) -> *mut GWeatherLocation;
490    pub fn gweather_location_free_timezones(
491        loc: *mut GWeatherLocation,
492        zones: *mut *mut glib::GTimeZone,
493    );
494    pub fn gweather_location_get_city_name(loc: *mut GWeatherLocation) -> *mut c_char;
495    pub fn gweather_location_get_code(loc: *mut GWeatherLocation) -> *const c_char;
496    pub fn gweather_location_get_coords(
497        loc: *mut GWeatherLocation,
498        latitude: *mut c_double,
499        longitude: *mut c_double,
500    );
501    pub fn gweather_location_get_country(loc: *mut GWeatherLocation) -> *const c_char;
502    pub fn gweather_location_get_country_name(loc: *mut GWeatherLocation) -> *mut c_char;
503    pub fn gweather_location_get_distance(
504        loc: *mut GWeatherLocation,
505        loc2: *mut GWeatherLocation,
506    ) -> c_double;
507    pub fn gweather_location_get_english_name(loc: *mut GWeatherLocation) -> *const c_char;
508    pub fn gweather_location_get_english_sort_name(loc: *mut GWeatherLocation) -> *const c_char;
509    pub fn gweather_location_get_level(loc: *mut GWeatherLocation) -> GWeatherLocationLevel;
510    pub fn gweather_location_get_name(loc: *mut GWeatherLocation) -> *const c_char;
511    pub fn gweather_location_get_parent(loc: *mut GWeatherLocation) -> *mut GWeatherLocation;
512    pub fn gweather_location_get_sort_name(loc: *mut GWeatherLocation) -> *const c_char;
513    pub fn gweather_location_get_timezone(loc: *mut GWeatherLocation) -> *mut glib::GTimeZone;
514    pub fn gweather_location_get_timezone_str(loc: *mut GWeatherLocation) -> *const c_char;
515    pub fn gweather_location_get_timezones(loc: *mut GWeatherLocation)
516        -> *mut *mut glib::GTimeZone;
517    pub fn gweather_location_has_coords(loc: *mut GWeatherLocation) -> gboolean;
518    pub fn gweather_location_has_timezone(loc: *mut GWeatherLocation) -> gboolean;
519    pub fn gweather_location_next_child(
520        loc: *mut GWeatherLocation,
521        child: *mut GWeatherLocation,
522    ) -> *mut GWeatherLocation;
523    pub fn gweather_location_serialize(loc: *mut GWeatherLocation) -> *mut glib::GVariant;
524
525}