1#![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
32pub type GWeatherMoonLatitude = c_double;
34pub type GWeatherMoonPhase = c_double;
35
36pub 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
155pub 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
170pub type GWeatherFilterFunc =
172 Option<unsafe extern "C" fn(*mut GWeatherLocation, gpointer) -> gboolean>;
173
174#[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#[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 pub fn gweather_phenomenon_get_type() -> GType;
255
256 pub fn gweather_qualifier_get_type() -> GType;
260
261 pub fn gweather_distance_unit_get_type() -> GType;
265
266 pub fn gweather_location_level_get_type() -> GType;
270 pub fn gweather_location_level_to_string(level: GWeatherLocationLevel) -> *const c_char;
271
272 pub fn gweather_pressure_unit_get_type() -> GType;
276
277 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 pub fn gweather_speed_unit_get_type() -> GType;
291 pub fn gweather_speed_unit_to_string(unit: GWeatherSpeedUnit) -> *const c_char;
292
293 pub fn gweather_temperature_unit_get_type() -> GType;
297 pub fn gweather_temperature_unit_to_real(
298 unit: GWeatherTemperatureUnit,
299 ) -> GWeatherTemperatureUnit;
300
301 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 pub fn gweather_format_options_get_type() -> GType;
315
316 pub fn gweather_provider_get_type() -> GType;
320
321 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 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 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}