diff --git a/.lock b/.lock new file mode 100644 index 0000000..e69de29 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/crates.js b/crates.js new file mode 100644 index 0000000..54bb27b --- /dev/null +++ b/crates.js @@ -0,0 +1 @@ +window.ALL_CRATES = ["sfcgal_sys"]; \ No newline at end of file diff --git a/help.html b/help.html new file mode 100644 index 0000000..2d59fd4 --- /dev/null +++ b/help.html @@ -0,0 +1,2 @@ +Help +

Rustdoc help

Back
\ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..6da9ef1 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ + diff --git a/search-index.js b/search-index.js new file mode 100644 index 0000000..9ffff49 --- /dev/null +++ b/search-index.js @@ -0,0 +1,5 @@ +var searchIndex = new Map(JSON.parse('[\ +["sfcgal_sys",{"doc":"","t":"PPPPPPHIHIIHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHISSSSSSSSSSSSHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHHHHHHHHHHHHHHHHHHIHHH","n":["None","None","None","Some","Some","Some","initialize","sfcgal_alloc_handler_t","sfcgal_approx_convex_partition_2","sfcgal_error_handler_t","sfcgal_free_handler_t","sfcgal_full_version","sfcgal_geometry_alpha_shapes","sfcgal_geometry_approximate_medial_axis","sfcgal_geometry_area","sfcgal_geometry_area_3d","sfcgal_geometry_as_text","sfcgal_geometry_as_text_decim","sfcgal_geometry_as_wkb","sfcgal_geometry_clone","sfcgal_geometry_collection_add_geometry","sfcgal_geometry_collection_create","sfcgal_geometry_collection_geometry_n","sfcgal_geometry_collection_num_geometries","sfcgal_geometry_convexhull","sfcgal_geometry_convexhull_3d","sfcgal_geometry_covers","sfcgal_geometry_covers_3d","sfcgal_geometry_delete","sfcgal_geometry_difference","sfcgal_geometry_difference_3d","sfcgal_geometry_distance","sfcgal_geometry_distance_3d","sfcgal_geometry_extrude","sfcgal_geometry_extrude_polygon_straight_skeleton","sfcgal_geometry_extrude_straight_skeleton","sfcgal_geometry_force_lhr","sfcgal_geometry_force_rhr","sfcgal_geometry_force_valid","sfcgal_geometry_has_validity_flag","sfcgal_geometry_intersection","sfcgal_geometry_intersection_3d","sfcgal_geometry_intersects","sfcgal_geometry_intersects_3d","sfcgal_geometry_is_3d","sfcgal_geometry_is_empty","sfcgal_geometry_is_measured","sfcgal_geometry_is_planar","sfcgal_geometry_is_valid","sfcgal_geometry_is_valid_detail","sfcgal_geometry_line_sub_string","sfcgal_geometry_make_solid","sfcgal_geometry_minkowski_sum","sfcgal_geometry_offset_polygon","sfcgal_geometry_optimal_alpha_shapes","sfcgal_geometry_orientation","sfcgal_geometry_round","sfcgal_geometry_straight_skeleton","sfcgal_geometry_straight_skeleton_distance_in_m","sfcgal_geometry_t","sfcgal_geometry_tesselate","sfcgal_geometry_triangulate_2dz","sfcgal_geometry_type_id","sfcgal_geometry_type_t","sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION","sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID","sfcgal_geometry_type_t_SFCGAL_TYPE_POINT","sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON","sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE","sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID","sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE","sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE","sfcgal_geometry_union","sfcgal_geometry_union_3d","sfcgal_geometry_visibility_point","sfcgal_geometry_visibility_segment","sfcgal_geometry_volume","sfcgal_greene_approx_convex_partition_2","sfcgal_init","sfcgal_io_read_binary_prepared","sfcgal_io_read_ewkt","sfcgal_io_read_wkb","sfcgal_io_read_wkt","sfcgal_io_write_binary_prepared","sfcgal_linestring_add_point","sfcgal_linestring_create","sfcgal_linestring_num_points","sfcgal_linestring_point_n","sfcgal_multi_linestring_create","sfcgal_multi_point_create","sfcgal_multi_polygon_create","sfcgal_optimal_convex_partition_2","sfcgal_point_create","sfcgal_point_create_from_xy","sfcgal_point_create_from_xym","sfcgal_point_create_from_xyz","sfcgal_point_create_from_xyzm","sfcgal_point_m","sfcgal_point_x","sfcgal_point_y","sfcgal_point_z","sfcgal_polygon_add_interior_ring","sfcgal_polygon_create","sfcgal_polygon_create_from_exterior_ring","sfcgal_polygon_exterior_ring","sfcgal_polygon_interior_ring_n","sfcgal_polygon_num_interior_rings","sfcgal_polyhedral_surface_add_polygon","sfcgal_polyhedral_surface_create","sfcgal_polyhedral_surface_num_polygons","sfcgal_polyhedral_surface_polygon_n","sfcgal_prepared_geometry_as_ewkt","sfcgal_prepared_geometry_create","sfcgal_prepared_geometry_create_from_geometry","sfcgal_prepared_geometry_delete","sfcgal_prepared_geometry_geometry","sfcgal_prepared_geometry_set_geometry","sfcgal_prepared_geometry_set_srid","sfcgal_prepared_geometry_srid","sfcgal_prepared_geometry_t","sfcgal_set_alloc_handlers","sfcgal_set_error_handlers","sfcgal_set_geometry_validation","sfcgal_solid_add_interior_shell","sfcgal_solid_create","sfcgal_solid_create_from_exterior_shell","sfcgal_solid_num_shells","sfcgal_solid_shell_n","sfcgal_triangle_create","sfcgal_triangle_create_from_points","sfcgal_triangle_set_vertex","sfcgal_triangle_set_vertex_from_xy","sfcgal_triangle_set_vertex_from_xyz","sfcgal_triangle_vertex","sfcgal_triangulated_surface_add_triangle","sfcgal_triangulated_surface_create","sfcgal_triangulated_surface_num_triangles","sfcgal_triangulated_surface_triangle_n","sfcgal_version","sfcgal_y_monotone_partition_2","srid_t","w_sfcgal_get_last_error","w_sfcgal_get_last_warning","w_sfcgal_init_handlers"],"q":[[0,"sfcgal_sys"]],"d":["No value.","No value.","No value.","Some value of type T.","Some value of type T.","Some value of type T.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[2,3,4,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":"``````{{}b}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````","c":[],"p":[[1,"unit"],[8,"sfcgal_error_handler_t",0],[8,"sfcgal_alloc_handler_t",0],[8,"sfcgal_free_handler_t",0]],"b":[]}]\ +]')); +if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; +else if (window.initSearch) window.initSearch(searchIndex); diff --git a/settings.html b/settings.html new file mode 100644 index 0000000..42319cd --- /dev/null +++ b/settings.html @@ -0,0 +1,2 @@ +Settings +

Rustdoc settings

Back
\ No newline at end of file diff --git a/sfcgal_sys/all.html b/sfcgal_sys/all.html new file mode 100644 index 0000000..2293122 --- /dev/null +++ b/sfcgal_sys/all.html @@ -0,0 +1,2 @@ +List of all items in this crate +

List of all items

Functions

Type Aliases

Constants

\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION.html new file mode 100644 index 0000000..50841ec --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION: sfcgal_geometry_type_t = 7;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING.html new file mode 100644 index 0000000..9f7cf74 --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING: sfcgal_geometry_type_t = 2;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING.html new file mode 100644 index 0000000..8fa2c6e --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING: sfcgal_geometry_type_t = 5;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT.html new file mode 100644 index 0000000..cf866f9 --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT: sfcgal_geometry_type_t = 4;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON.html new file mode 100644 index 0000000..1399a52 --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON: sfcgal_geometry_type_t = 6;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID.html new file mode 100644 index 0000000..b858b5d --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID: sfcgal_geometry_type_t = 102;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POINT.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POINT.html new file mode 100644 index 0000000..87a3a6b --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POINT.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_POINT in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_POINT: sfcgal_geometry_type_t = 1;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON.html new file mode 100644 index 0000000..42161d6 --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON: sfcgal_geometry_type_t = 3;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE.html new file mode 100644 index 0000000..98dfaf8 --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE: sfcgal_geometry_type_t = 15;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID.html new file mode 100644 index 0000000..8b6bc2a --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID: sfcgal_geometry_type_t = 101;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE.html new file mode 100644 index 0000000..2c44505 --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE: sfcgal_geometry_type_t = 17;
\ No newline at end of file diff --git a/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE.html b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE.html new file mode 100644 index 0000000..0e6c9a2 --- /dev/null +++ b/sfcgal_sys/constant.sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE in sfcgal_sys - Rust +
pub const sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE: sfcgal_geometry_type_t = 16;
\ No newline at end of file diff --git a/sfcgal_sys/fn.initialize.html b/sfcgal_sys/fn.initialize.html new file mode 100644 index 0000000..14487ef --- /dev/null +++ b/sfcgal_sys/fn.initialize.html @@ -0,0 +1,2 @@ +initialize in sfcgal_sys - Rust +

Function sfcgal_sys::initialize

source ·
pub fn initialize()
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_approx_convex_partition_2.html b/sfcgal_sys/fn.sfcgal_approx_convex_partition_2.html new file mode 100644 index 0000000..e52dfb6 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_approx_convex_partition_2.html @@ -0,0 +1,4 @@ +sfcgal_approx_convex_partition_2 in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_approx_convex_partition_2(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_full_version.html b/sfcgal_sys/fn.sfcgal_full_version.html new file mode 100644 index 0000000..6d91289 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_full_version.html @@ -0,0 +1,2 @@ +sfcgal_full_version in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_full_version() -> *const c_char
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_alpha_shapes.html b/sfcgal_sys/fn.sfcgal_geometry_alpha_shapes.html new file mode 100644 index 0000000..af16c0e --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_alpha_shapes.html @@ -0,0 +1,6 @@ +sfcgal_geometry_alpha_shapes in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_alpha_shapes(
+    geom: *const sfcgal_geometry_t,
+    alpha: f64,
+    allow_holes: bool
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_approximate_medial_axis.html b/sfcgal_sys/fn.sfcgal_geometry_approximate_medial_axis.html new file mode 100644 index 0000000..75b0165 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_approximate_medial_axis.html @@ -0,0 +1,4 @@ +sfcgal_geometry_approximate_medial_axis in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_approximate_medial_axis(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_area.html b/sfcgal_sys/fn.sfcgal_geometry_area.html new file mode 100644 index 0000000..283770f --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_area.html @@ -0,0 +1,4 @@ +sfcgal_geometry_area in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_area(
+    geom: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_area_3d.html b/sfcgal_sys/fn.sfcgal_geometry_area_3d.html new file mode 100644 index 0000000..26ddc7d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_area_3d.html @@ -0,0 +1,4 @@ +sfcgal_geometry_area_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_area_3d(
+    geom: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_as_text.html b/sfcgal_sys/fn.sfcgal_geometry_as_text.html new file mode 100644 index 0000000..86c7c15 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_as_text.html @@ -0,0 +1,6 @@ +sfcgal_geometry_as_text in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_as_text(
+    arg1: *const sfcgal_geometry_t,
+    buffer: *mut *mut c_char,
+    len: *mut usize
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_as_text_decim.html b/sfcgal_sys/fn.sfcgal_geometry_as_text_decim.html new file mode 100644 index 0000000..2b012f4 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_as_text_decim.html @@ -0,0 +1,7 @@ +sfcgal_geometry_as_text_decim in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_as_text_decim(
+    arg1: *const sfcgal_geometry_t,
+    numDecimals: c_int,
+    buffer: *mut *mut c_char,
+    len: *mut usize
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_as_wkb.html b/sfcgal_sys/fn.sfcgal_geometry_as_wkb.html new file mode 100644 index 0000000..8a27097 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_as_wkb.html @@ -0,0 +1,6 @@ +sfcgal_geometry_as_wkb in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_as_wkb(
+    arg1: *const sfcgal_geometry_t,
+    buffer: *mut *mut c_char,
+    len: *mut usize
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_clone.html b/sfcgal_sys/fn.sfcgal_geometry_clone.html new file mode 100644 index 0000000..8452176 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_clone.html @@ -0,0 +1,4 @@ +sfcgal_geometry_clone in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_clone(
+    arg1: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_collection_add_geometry.html b/sfcgal_sys/fn.sfcgal_geometry_collection_add_geometry.html new file mode 100644 index 0000000..cee0061 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_collection_add_geometry.html @@ -0,0 +1,5 @@ +sfcgal_geometry_collection_add_geometry in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_collection_add_geometry(
+    collection: *mut sfcgal_geometry_t,
+    geometry: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_collection_create.html b/sfcgal_sys/fn.sfcgal_geometry_collection_create.html new file mode 100644 index 0000000..f22c6f2 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_collection_create.html @@ -0,0 +1,3 @@ +sfcgal_geometry_collection_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_collection_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_collection_geometry_n.html b/sfcgal_sys/fn.sfcgal_geometry_collection_geometry_n.html new file mode 100644 index 0000000..d56d53d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_collection_geometry_n.html @@ -0,0 +1,5 @@ +sfcgal_geometry_collection_geometry_n in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_collection_geometry_n(
+    collection: *const sfcgal_geometry_t,
+    i: usize
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_collection_num_geometries.html b/sfcgal_sys/fn.sfcgal_geometry_collection_num_geometries.html new file mode 100644 index 0000000..ff7c41f --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_collection_num_geometries.html @@ -0,0 +1,4 @@ +sfcgal_geometry_collection_num_geometries in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_collection_num_geometries(
+    collection: *const sfcgal_geometry_t
+) -> usize
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_convexhull.html b/sfcgal_sys/fn.sfcgal_geometry_convexhull.html new file mode 100644 index 0000000..e75d2c1 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_convexhull.html @@ -0,0 +1,4 @@ +sfcgal_geometry_convexhull in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_convexhull(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_convexhull_3d.html b/sfcgal_sys/fn.sfcgal_geometry_convexhull_3d.html new file mode 100644 index 0000000..c6b997c --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_convexhull_3d.html @@ -0,0 +1,4 @@ +sfcgal_geometry_convexhull_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_convexhull_3d(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_covers.html b/sfcgal_sys/fn.sfcgal_geometry_covers.html new file mode 100644 index 0000000..e66e817 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_covers.html @@ -0,0 +1,5 @@ +sfcgal_geometry_covers in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_covers(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_covers_3d.html b/sfcgal_sys/fn.sfcgal_geometry_covers_3d.html new file mode 100644 index 0000000..f858136 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_covers_3d.html @@ -0,0 +1,5 @@ +sfcgal_geometry_covers_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_covers_3d(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_delete.html b/sfcgal_sys/fn.sfcgal_geometry_delete.html new file mode 100644 index 0000000..940b3b8 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_delete.html @@ -0,0 +1,4 @@ +sfcgal_geometry_delete in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_delete(
+    arg1: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_difference.html b/sfcgal_sys/fn.sfcgal_geometry_difference.html new file mode 100644 index 0000000..2fcae3d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_difference.html @@ -0,0 +1,5 @@ +sfcgal_geometry_difference in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_difference(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_difference_3d.html b/sfcgal_sys/fn.sfcgal_geometry_difference_3d.html new file mode 100644 index 0000000..c4a4a3b --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_difference_3d.html @@ -0,0 +1,5 @@ +sfcgal_geometry_difference_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_difference_3d(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_distance.html b/sfcgal_sys/fn.sfcgal_geometry_distance.html new file mode 100644 index 0000000..1cd072f --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_distance.html @@ -0,0 +1,5 @@ +sfcgal_geometry_distance in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_distance(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_distance_3d.html b/sfcgal_sys/fn.sfcgal_geometry_distance_3d.html new file mode 100644 index 0000000..0929e71 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_distance_3d.html @@ -0,0 +1,5 @@ +sfcgal_geometry_distance_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_distance_3d(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_extrude.html b/sfcgal_sys/fn.sfcgal_geometry_extrude.html new file mode 100644 index 0000000..44577a4 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_extrude.html @@ -0,0 +1,7 @@ +sfcgal_geometry_extrude in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_extrude(
+    geom: *const sfcgal_geometry_t,
+    ex: f64,
+    ey: f64,
+    ez: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_extrude_polygon_straight_skeleton.html b/sfcgal_sys/fn.sfcgal_geometry_extrude_polygon_straight_skeleton.html new file mode 100644 index 0000000..d94a837 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_extrude_polygon_straight_skeleton.html @@ -0,0 +1,6 @@ +sfcgal_geometry_extrude_polygon_straight_skeleton in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_extrude_polygon_straight_skeleton(
+    geom: *const sfcgal_geometry_t,
+    building_height: f64,
+    roof_height: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_extrude_straight_skeleton.html b/sfcgal_sys/fn.sfcgal_geometry_extrude_straight_skeleton.html new file mode 100644 index 0000000..c0613fb --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_extrude_straight_skeleton.html @@ -0,0 +1,5 @@ +sfcgal_geometry_extrude_straight_skeleton in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_extrude_straight_skeleton(
+    geom: *const sfcgal_geometry_t,
+    height: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_force_lhr.html b/sfcgal_sys/fn.sfcgal_geometry_force_lhr.html new file mode 100644 index 0000000..99ad3fc --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_force_lhr.html @@ -0,0 +1,4 @@ +sfcgal_geometry_force_lhr in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_force_lhr(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_force_rhr.html b/sfcgal_sys/fn.sfcgal_geometry_force_rhr.html new file mode 100644 index 0000000..7dc7f8e --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_force_rhr.html @@ -0,0 +1,4 @@ +sfcgal_geometry_force_rhr in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_force_rhr(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_force_valid.html b/sfcgal_sys/fn.sfcgal_geometry_force_valid.html new file mode 100644 index 0000000..93034a6 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_force_valid.html @@ -0,0 +1,5 @@ +sfcgal_geometry_force_valid in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_force_valid(
+    geom: *mut sfcgal_geometry_t,
+    valid: c_int
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_has_validity_flag.html b/sfcgal_sys/fn.sfcgal_geometry_has_validity_flag.html new file mode 100644 index 0000000..ad71fd7 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_has_validity_flag.html @@ -0,0 +1,4 @@ +sfcgal_geometry_has_validity_flag in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_has_validity_flag(
+    geom: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_intersection.html b/sfcgal_sys/fn.sfcgal_geometry_intersection.html new file mode 100644 index 0000000..123868a --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_intersection.html @@ -0,0 +1,5 @@ +sfcgal_geometry_intersection in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_intersection(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_intersection_3d.html b/sfcgal_sys/fn.sfcgal_geometry_intersection_3d.html new file mode 100644 index 0000000..d4a257d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_intersection_3d.html @@ -0,0 +1,5 @@ +sfcgal_geometry_intersection_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_intersection_3d(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_intersects.html b/sfcgal_sys/fn.sfcgal_geometry_intersects.html new file mode 100644 index 0000000..4cbad6c --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_intersects.html @@ -0,0 +1,5 @@ +sfcgal_geometry_intersects in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_intersects(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_intersects_3d.html b/sfcgal_sys/fn.sfcgal_geometry_intersects_3d.html new file mode 100644 index 0000000..06d9b89 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_intersects_3d.html @@ -0,0 +1,5 @@ +sfcgal_geometry_intersects_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_intersects_3d(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_is_3d.html b/sfcgal_sys/fn.sfcgal_geometry_is_3d.html new file mode 100644 index 0000000..af5f5ec --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_is_3d.html @@ -0,0 +1,4 @@ +sfcgal_geometry_is_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_is_3d(
+    arg1: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_is_empty.html b/sfcgal_sys/fn.sfcgal_geometry_is_empty.html new file mode 100644 index 0000000..55a03a7 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_is_empty.html @@ -0,0 +1,4 @@ +sfcgal_geometry_is_empty in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_is_empty(
+    arg1: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_is_measured.html b/sfcgal_sys/fn.sfcgal_geometry_is_measured.html new file mode 100644 index 0000000..c6a29f9 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_is_measured.html @@ -0,0 +1,4 @@ +sfcgal_geometry_is_measured in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_is_measured(
+    arg1: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_is_planar.html b/sfcgal_sys/fn.sfcgal_geometry_is_planar.html new file mode 100644 index 0000000..c0f8761 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_is_planar.html @@ -0,0 +1,4 @@ +sfcgal_geometry_is_planar in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_is_planar(
+    geom: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_is_valid.html b/sfcgal_sys/fn.sfcgal_geometry_is_valid.html new file mode 100644 index 0000000..fa527c4 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_is_valid.html @@ -0,0 +1,4 @@ +sfcgal_geometry_is_valid in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_is_valid(
+    arg1: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_is_valid_detail.html b/sfcgal_sys/fn.sfcgal_geometry_is_valid_detail.html new file mode 100644 index 0000000..1fd851d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_is_valid_detail.html @@ -0,0 +1,6 @@ +sfcgal_geometry_is_valid_detail in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_is_valid_detail(
+    geom: *const sfcgal_geometry_t,
+    invalidity_reason: *mut *mut c_char,
+    invalidity_location: *mut *mut sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_line_sub_string.html b/sfcgal_sys/fn.sfcgal_geometry_line_sub_string.html new file mode 100644 index 0000000..a185203 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_line_sub_string.html @@ -0,0 +1,6 @@ +sfcgal_geometry_line_sub_string in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_line_sub_string(
+    geom: *const sfcgal_geometry_t,
+    start: f64,
+    end: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_make_solid.html b/sfcgal_sys/fn.sfcgal_geometry_make_solid.html new file mode 100644 index 0000000..a588d10 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_make_solid.html @@ -0,0 +1,4 @@ +sfcgal_geometry_make_solid in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_make_solid(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_minkowski_sum.html b/sfcgal_sys/fn.sfcgal_geometry_minkowski_sum.html new file mode 100644 index 0000000..de96ec1 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_minkowski_sum.html @@ -0,0 +1,5 @@ +sfcgal_geometry_minkowski_sum in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_minkowski_sum(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_offset_polygon.html b/sfcgal_sys/fn.sfcgal_geometry_offset_polygon.html new file mode 100644 index 0000000..fb09d66 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_offset_polygon.html @@ -0,0 +1,5 @@ +sfcgal_geometry_offset_polygon in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_offset_polygon(
+    geom: *const sfcgal_geometry_t,
+    radius: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_optimal_alpha_shapes.html b/sfcgal_sys/fn.sfcgal_geometry_optimal_alpha_shapes.html new file mode 100644 index 0000000..3ab1013 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_optimal_alpha_shapes.html @@ -0,0 +1,6 @@ +sfcgal_geometry_optimal_alpha_shapes in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_optimal_alpha_shapes(
+    geom: *const sfcgal_geometry_t,
+    allow_holes: bool,
+    nb_components: usize
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_orientation.html b/sfcgal_sys/fn.sfcgal_geometry_orientation.html new file mode 100644 index 0000000..7ca0587 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_orientation.html @@ -0,0 +1,4 @@ +sfcgal_geometry_orientation in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_orientation(
+    geom: *const sfcgal_geometry_t
+) -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_round.html b/sfcgal_sys/fn.sfcgal_geometry_round.html new file mode 100644 index 0000000..6871f41 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_round.html @@ -0,0 +1,5 @@ +sfcgal_geometry_round in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_round(
+    geom: *const sfcgal_geometry_t,
+    r: c_int
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_straight_skeleton.html b/sfcgal_sys/fn.sfcgal_geometry_straight_skeleton.html new file mode 100644 index 0000000..2d8370d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_straight_skeleton.html @@ -0,0 +1,4 @@ +sfcgal_geometry_straight_skeleton in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_straight_skeleton(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_straight_skeleton_distance_in_m.html b/sfcgal_sys/fn.sfcgal_geometry_straight_skeleton_distance_in_m.html new file mode 100644 index 0000000..3459e79 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_straight_skeleton_distance_in_m.html @@ -0,0 +1,4 @@ +sfcgal_geometry_straight_skeleton_distance_in_m in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_straight_skeleton_distance_in_m(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_tesselate.html b/sfcgal_sys/fn.sfcgal_geometry_tesselate.html new file mode 100644 index 0000000..4dfbf28 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_tesselate.html @@ -0,0 +1,4 @@ +sfcgal_geometry_tesselate in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_tesselate(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_triangulate_2dz.html b/sfcgal_sys/fn.sfcgal_geometry_triangulate_2dz.html new file mode 100644 index 0000000..dc96dcc --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_triangulate_2dz.html @@ -0,0 +1,4 @@ +sfcgal_geometry_triangulate_2dz in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_triangulate_2dz(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_type_id.html b/sfcgal_sys/fn.sfcgal_geometry_type_id.html new file mode 100644 index 0000000..1178ead --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_type_id.html @@ -0,0 +1,4 @@ +sfcgal_geometry_type_id in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_type_id(
+    arg1: *const sfcgal_geometry_t
+) -> sfcgal_geometry_type_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_union.html b/sfcgal_sys/fn.sfcgal_geometry_union.html new file mode 100644 index 0000000..0ae7f48 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_union.html @@ -0,0 +1,5 @@ +sfcgal_geometry_union in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_union(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_union_3d.html b/sfcgal_sys/fn.sfcgal_geometry_union_3d.html new file mode 100644 index 0000000..8b18a10 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_union_3d.html @@ -0,0 +1,5 @@ +sfcgal_geometry_union_3d in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_union_3d(
+    geom1: *const sfcgal_geometry_t,
+    geom2: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_visibility_point.html b/sfcgal_sys/fn.sfcgal_geometry_visibility_point.html new file mode 100644 index 0000000..a788043 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_visibility_point.html @@ -0,0 +1,5 @@ +sfcgal_geometry_visibility_point in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_visibility_point(
+    polygon: *const sfcgal_geometry_t,
+    point: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_visibility_segment.html b/sfcgal_sys/fn.sfcgal_geometry_visibility_segment.html new file mode 100644 index 0000000..5cdf836 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_visibility_segment.html @@ -0,0 +1,6 @@ +sfcgal_geometry_visibility_segment in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_visibility_segment(
+    polygon: *const sfcgal_geometry_t,
+    pointA: *const sfcgal_geometry_t,
+    pointB: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_geometry_volume.html b/sfcgal_sys/fn.sfcgal_geometry_volume.html new file mode 100644 index 0000000..9332d2c --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_geometry_volume.html @@ -0,0 +1,4 @@ +sfcgal_geometry_volume in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_geometry_volume(
+    geom: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_greene_approx_convex_partition_2.html b/sfcgal_sys/fn.sfcgal_greene_approx_convex_partition_2.html new file mode 100644 index 0000000..7ecf4f0 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_greene_approx_convex_partition_2.html @@ -0,0 +1,4 @@ +sfcgal_greene_approx_convex_partition_2 in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_greene_approx_convex_partition_2(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_init.html b/sfcgal_sys/fn.sfcgal_init.html new file mode 100644 index 0000000..02a6173 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_init.html @@ -0,0 +1,2 @@ +sfcgal_init in sfcgal_sys - Rust +

Function sfcgal_sys::sfcgal_init

source ·
pub unsafe extern "C" fn sfcgal_init()
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_io_read_binary_prepared.html b/sfcgal_sys/fn.sfcgal_io_read_binary_prepared.html new file mode 100644 index 0000000..2fe85f2 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_io_read_binary_prepared.html @@ -0,0 +1,5 @@ +sfcgal_io_read_binary_prepared in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_io_read_binary_prepared(
+    arg1: *const c_char,
+    l: usize
+) -> *mut sfcgal_prepared_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_io_read_ewkt.html b/sfcgal_sys/fn.sfcgal_io_read_ewkt.html new file mode 100644 index 0000000..b89a670 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_io_read_ewkt.html @@ -0,0 +1,5 @@ +sfcgal_io_read_ewkt in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_io_read_ewkt(
+    arg1: *const c_char,
+    len: usize
+) -> *mut sfcgal_prepared_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_io_read_wkb.html b/sfcgal_sys/fn.sfcgal_io_read_wkb.html new file mode 100644 index 0000000..ef9b08a --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_io_read_wkb.html @@ -0,0 +1,5 @@ +sfcgal_io_read_wkb in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_io_read_wkb(
+    arg1: *const c_char,
+    len: usize
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_io_read_wkt.html b/sfcgal_sys/fn.sfcgal_io_read_wkt.html new file mode 100644 index 0000000..e1484eb --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_io_read_wkt.html @@ -0,0 +1,5 @@ +sfcgal_io_read_wkt in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_io_read_wkt(
+    arg1: *const c_char,
+    len: usize
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_io_write_binary_prepared.html b/sfcgal_sys/fn.sfcgal_io_write_binary_prepared.html new file mode 100644 index 0000000..812f989 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_io_write_binary_prepared.html @@ -0,0 +1,6 @@ +sfcgal_io_write_binary_prepared in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_io_write_binary_prepared(
+    arg1: *const sfcgal_prepared_geometry_t,
+    arg2: *mut *mut c_char,
+    arg3: *mut usize
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_linestring_add_point.html b/sfcgal_sys/fn.sfcgal_linestring_add_point.html new file mode 100644 index 0000000..99fcaee --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_linestring_add_point.html @@ -0,0 +1,5 @@ +sfcgal_linestring_add_point in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_linestring_add_point(
+    linestring: *mut sfcgal_geometry_t,
+    point: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_linestring_create.html b/sfcgal_sys/fn.sfcgal_linestring_create.html new file mode 100644 index 0000000..f4f7b9a --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_linestring_create.html @@ -0,0 +1,3 @@ +sfcgal_linestring_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_linestring_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_linestring_num_points.html b/sfcgal_sys/fn.sfcgal_linestring_num_points.html new file mode 100644 index 0000000..093da49 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_linestring_num_points.html @@ -0,0 +1,4 @@ +sfcgal_linestring_num_points in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_linestring_num_points(
+    linestring: *const sfcgal_geometry_t
+) -> usize
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_linestring_point_n.html b/sfcgal_sys/fn.sfcgal_linestring_point_n.html new file mode 100644 index 0000000..1a67b00 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_linestring_point_n.html @@ -0,0 +1,5 @@ +sfcgal_linestring_point_n in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_linestring_point_n(
+    linestring: *const sfcgal_geometry_t,
+    i: usize
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_multi_linestring_create.html b/sfcgal_sys/fn.sfcgal_multi_linestring_create.html new file mode 100644 index 0000000..a3122ac --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_multi_linestring_create.html @@ -0,0 +1,3 @@ +sfcgal_multi_linestring_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_multi_linestring_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_multi_point_create.html b/sfcgal_sys/fn.sfcgal_multi_point_create.html new file mode 100644 index 0000000..bee95a1 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_multi_point_create.html @@ -0,0 +1,3 @@ +sfcgal_multi_point_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_multi_point_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_multi_polygon_create.html b/sfcgal_sys/fn.sfcgal_multi_polygon_create.html new file mode 100644 index 0000000..eb87c6d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_multi_polygon_create.html @@ -0,0 +1,3 @@ +sfcgal_multi_polygon_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_multi_polygon_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_optimal_convex_partition_2.html b/sfcgal_sys/fn.sfcgal_optimal_convex_partition_2.html new file mode 100644 index 0000000..86cbd5a --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_optimal_convex_partition_2.html @@ -0,0 +1,4 @@ +sfcgal_optimal_convex_partition_2 in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_optimal_convex_partition_2(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_create.html b/sfcgal_sys/fn.sfcgal_point_create.html new file mode 100644 index 0000000..bb3a0db --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_create.html @@ -0,0 +1,3 @@ +sfcgal_point_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_point_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_create_from_xy.html b/sfcgal_sys/fn.sfcgal_point_create_from_xy.html new file mode 100644 index 0000000..3afd727 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_create_from_xy.html @@ -0,0 +1,5 @@ +sfcgal_point_create_from_xy in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_point_create_from_xy(
+    x: f64,
+    y: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_create_from_xym.html b/sfcgal_sys/fn.sfcgal_point_create_from_xym.html new file mode 100644 index 0000000..b564426 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_create_from_xym.html @@ -0,0 +1,6 @@ +sfcgal_point_create_from_xym in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_point_create_from_xym(
+    x: f64,
+    y: f64,
+    m: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_create_from_xyz.html b/sfcgal_sys/fn.sfcgal_point_create_from_xyz.html new file mode 100644 index 0000000..016d415 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_create_from_xyz.html @@ -0,0 +1,6 @@ +sfcgal_point_create_from_xyz in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_point_create_from_xyz(
+    x: f64,
+    y: f64,
+    z: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_create_from_xyzm.html b/sfcgal_sys/fn.sfcgal_point_create_from_xyzm.html new file mode 100644 index 0000000..d065f8f --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_create_from_xyzm.html @@ -0,0 +1,7 @@ +sfcgal_point_create_from_xyzm in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_point_create_from_xyzm(
+    x: f64,
+    y: f64,
+    z: f64,
+    m: f64
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_m.html b/sfcgal_sys/fn.sfcgal_point_m.html new file mode 100644 index 0000000..d6a7ef6 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_m.html @@ -0,0 +1,4 @@ +sfcgal_point_m in sfcgal_sys - Rust +

Function sfcgal_sys::sfcgal_point_m

source ·
pub unsafe extern "C" fn sfcgal_point_m(
+    arg1: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_x.html b/sfcgal_sys/fn.sfcgal_point_x.html new file mode 100644 index 0000000..a353897 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_x.html @@ -0,0 +1,4 @@ +sfcgal_point_x in sfcgal_sys - Rust +

Function sfcgal_sys::sfcgal_point_x

source ·
pub unsafe extern "C" fn sfcgal_point_x(
+    arg1: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_y.html b/sfcgal_sys/fn.sfcgal_point_y.html new file mode 100644 index 0000000..21ef731 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_y.html @@ -0,0 +1,4 @@ +sfcgal_point_y in sfcgal_sys - Rust +

Function sfcgal_sys::sfcgal_point_y

source ·
pub unsafe extern "C" fn sfcgal_point_y(
+    arg1: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_point_z.html b/sfcgal_sys/fn.sfcgal_point_z.html new file mode 100644 index 0000000..1020fce --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_point_z.html @@ -0,0 +1,4 @@ +sfcgal_point_z in sfcgal_sys - Rust +

Function sfcgal_sys::sfcgal_point_z

source ·
pub unsafe extern "C" fn sfcgal_point_z(
+    arg1: *const sfcgal_geometry_t
+) -> f64
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polygon_add_interior_ring.html b/sfcgal_sys/fn.sfcgal_polygon_add_interior_ring.html new file mode 100644 index 0000000..a5a4cad --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polygon_add_interior_ring.html @@ -0,0 +1,5 @@ +sfcgal_polygon_add_interior_ring in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polygon_add_interior_ring(
+    polygon: *mut sfcgal_geometry_t,
+    ring: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polygon_create.html b/sfcgal_sys/fn.sfcgal_polygon_create.html new file mode 100644 index 0000000..961151e --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polygon_create.html @@ -0,0 +1,3 @@ +sfcgal_polygon_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polygon_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polygon_create_from_exterior_ring.html b/sfcgal_sys/fn.sfcgal_polygon_create_from_exterior_ring.html new file mode 100644 index 0000000..8278b32 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polygon_create_from_exterior_ring.html @@ -0,0 +1,4 @@ +sfcgal_polygon_create_from_exterior_ring in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polygon_create_from_exterior_ring(
+    ring: *mut sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polygon_exterior_ring.html b/sfcgal_sys/fn.sfcgal_polygon_exterior_ring.html new file mode 100644 index 0000000..9c8de7c --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polygon_exterior_ring.html @@ -0,0 +1,4 @@ +sfcgal_polygon_exterior_ring in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polygon_exterior_ring(
+    polygon: *const sfcgal_geometry_t
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polygon_interior_ring_n.html b/sfcgal_sys/fn.sfcgal_polygon_interior_ring_n.html new file mode 100644 index 0000000..c21f015 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polygon_interior_ring_n.html @@ -0,0 +1,5 @@ +sfcgal_polygon_interior_ring_n in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polygon_interior_ring_n(
+    polygon: *const sfcgal_geometry_t,
+    i: usize
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polygon_num_interior_rings.html b/sfcgal_sys/fn.sfcgal_polygon_num_interior_rings.html new file mode 100644 index 0000000..5e045fd --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polygon_num_interior_rings.html @@ -0,0 +1,4 @@ +sfcgal_polygon_num_interior_rings in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polygon_num_interior_rings(
+    polygon: *const sfcgal_geometry_t
+) -> usize
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polyhedral_surface_add_polygon.html b/sfcgal_sys/fn.sfcgal_polyhedral_surface_add_polygon.html new file mode 100644 index 0000000..63b8157 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polyhedral_surface_add_polygon.html @@ -0,0 +1,5 @@ +sfcgal_polyhedral_surface_add_polygon in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polyhedral_surface_add_polygon(
+    polyhedral: *mut sfcgal_geometry_t,
+    polygon: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polyhedral_surface_create.html b/sfcgal_sys/fn.sfcgal_polyhedral_surface_create.html new file mode 100644 index 0000000..8506ba4 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polyhedral_surface_create.html @@ -0,0 +1,3 @@ +sfcgal_polyhedral_surface_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polyhedral_surface_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polyhedral_surface_num_polygons.html b/sfcgal_sys/fn.sfcgal_polyhedral_surface_num_polygons.html new file mode 100644 index 0000000..e1961cc --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polyhedral_surface_num_polygons.html @@ -0,0 +1,4 @@ +sfcgal_polyhedral_surface_num_polygons in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polyhedral_surface_num_polygons(
+    polyhedral: *const sfcgal_geometry_t
+) -> usize
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_polyhedral_surface_polygon_n.html b/sfcgal_sys/fn.sfcgal_polyhedral_surface_polygon_n.html new file mode 100644 index 0000000..d333ab9 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_polyhedral_surface_polygon_n.html @@ -0,0 +1,5 @@ +sfcgal_polyhedral_surface_polygon_n in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_polyhedral_surface_polygon_n(
+    polyhedral: *const sfcgal_geometry_t,
+    i: usize
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_as_ewkt.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_as_ewkt.html new file mode 100644 index 0000000..56db7ad --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_as_ewkt.html @@ -0,0 +1,7 @@ +sfcgal_prepared_geometry_as_ewkt in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_as_ewkt(
+    prepared: *const sfcgal_prepared_geometry_t,
+    num_decimals: c_int,
+    buffer: *mut *mut c_char,
+    len: *mut usize
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_create.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_create.html new file mode 100644 index 0000000..7fca3e1 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_create.html @@ -0,0 +1,3 @@ +sfcgal_prepared_geometry_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_create(
+) -> *mut sfcgal_prepared_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_create_from_geometry.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_create_from_geometry.html new file mode 100644 index 0000000..ffef9ea --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_create_from_geometry.html @@ -0,0 +1,5 @@ +sfcgal_prepared_geometry_create_from_geometry in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_create_from_geometry(
+    geometry: *mut sfcgal_geometry_t,
+    srid: srid_t
+) -> *mut sfcgal_prepared_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_delete.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_delete.html new file mode 100644 index 0000000..ccbded8 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_delete.html @@ -0,0 +1,4 @@ +sfcgal_prepared_geometry_delete in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_delete(
+    prepared: *mut sfcgal_prepared_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_geometry.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_geometry.html new file mode 100644 index 0000000..253b010 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_geometry.html @@ -0,0 +1,4 @@ +sfcgal_prepared_geometry_geometry in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_geometry(
+    prepared: *const sfcgal_prepared_geometry_t
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_set_geometry.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_set_geometry.html new file mode 100644 index 0000000..b008e87 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_set_geometry.html @@ -0,0 +1,5 @@ +sfcgal_prepared_geometry_set_geometry in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_set_geometry(
+    prepared: *mut sfcgal_prepared_geometry_t,
+    geometry: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_set_srid.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_set_srid.html new file mode 100644 index 0000000..130a588 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_set_srid.html @@ -0,0 +1,5 @@ +sfcgal_prepared_geometry_set_srid in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_set_srid(
+    prepared: *mut sfcgal_prepared_geometry_t,
+    arg1: srid_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_prepared_geometry_srid.html b/sfcgal_sys/fn.sfcgal_prepared_geometry_srid.html new file mode 100644 index 0000000..4a141ce --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_prepared_geometry_srid.html @@ -0,0 +1,4 @@ +sfcgal_prepared_geometry_srid in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_prepared_geometry_srid(
+    prepared: *const sfcgal_prepared_geometry_t
+) -> srid_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_set_alloc_handlers.html b/sfcgal_sys/fn.sfcgal_set_alloc_handlers.html new file mode 100644 index 0000000..150fff6 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_set_alloc_handlers.html @@ -0,0 +1,5 @@ +sfcgal_set_alloc_handlers in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_set_alloc_handlers(
+    malloc_handler: sfcgal_alloc_handler_t,
+    free_handler: sfcgal_free_handler_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_set_error_handlers.html b/sfcgal_sys/fn.sfcgal_set_error_handlers.html new file mode 100644 index 0000000..a83a5f5 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_set_error_handlers.html @@ -0,0 +1,5 @@ +sfcgal_set_error_handlers in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_set_error_handlers(
+    warning_handler: sfcgal_error_handler_t,
+    error_handler: sfcgal_error_handler_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_set_geometry_validation.html b/sfcgal_sys/fn.sfcgal_set_geometry_validation.html new file mode 100644 index 0000000..5b81df3 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_set_geometry_validation.html @@ -0,0 +1,4 @@ +sfcgal_set_geometry_validation in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_set_geometry_validation(
+    enabled: c_int
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_solid_add_interior_shell.html b/sfcgal_sys/fn.sfcgal_solid_add_interior_shell.html new file mode 100644 index 0000000..db0c671 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_solid_add_interior_shell.html @@ -0,0 +1,5 @@ +sfcgal_solid_add_interior_shell in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_solid_add_interior_shell(
+    solid: *mut sfcgal_geometry_t,
+    shell: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_solid_create.html b/sfcgal_sys/fn.sfcgal_solid_create.html new file mode 100644 index 0000000..0e269f5 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_solid_create.html @@ -0,0 +1,3 @@ +sfcgal_solid_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_solid_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_solid_create_from_exterior_shell.html b/sfcgal_sys/fn.sfcgal_solid_create_from_exterior_shell.html new file mode 100644 index 0000000..ffb8ac1 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_solid_create_from_exterior_shell.html @@ -0,0 +1,4 @@ +sfcgal_solid_create_from_exterior_shell in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_solid_create_from_exterior_shell(
+    shell: *mut sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_solid_num_shells.html b/sfcgal_sys/fn.sfcgal_solid_num_shells.html new file mode 100644 index 0000000..2669eda --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_solid_num_shells.html @@ -0,0 +1,4 @@ +sfcgal_solid_num_shells in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_solid_num_shells(
+    solid: *const sfcgal_geometry_t
+) -> usize
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_solid_shell_n.html b/sfcgal_sys/fn.sfcgal_solid_shell_n.html new file mode 100644 index 0000000..659f4d5 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_solid_shell_n.html @@ -0,0 +1,5 @@ +sfcgal_solid_shell_n in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_solid_shell_n(
+    solid: *const sfcgal_geometry_t,
+    i: usize
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangle_create.html b/sfcgal_sys/fn.sfcgal_triangle_create.html new file mode 100644 index 0000000..e9c72cb --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangle_create.html @@ -0,0 +1,3 @@ +sfcgal_triangle_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangle_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangle_create_from_points.html b/sfcgal_sys/fn.sfcgal_triangle_create_from_points.html new file mode 100644 index 0000000..1ba8758 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangle_create_from_points.html @@ -0,0 +1,6 @@ +sfcgal_triangle_create_from_points in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangle_create_from_points(
+    pta: *const sfcgal_geometry_t,
+    ptb: *const sfcgal_geometry_t,
+    ptc: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangle_set_vertex.html b/sfcgal_sys/fn.sfcgal_triangle_set_vertex.html new file mode 100644 index 0000000..0e9790c --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangle_set_vertex.html @@ -0,0 +1,6 @@ +sfcgal_triangle_set_vertex in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangle_set_vertex(
+    triangle: *mut sfcgal_geometry_t,
+    i: c_int,
+    vertex: *const sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangle_set_vertex_from_xy.html b/sfcgal_sys/fn.sfcgal_triangle_set_vertex_from_xy.html new file mode 100644 index 0000000..1ac6a8a --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangle_set_vertex_from_xy.html @@ -0,0 +1,7 @@ +sfcgal_triangle_set_vertex_from_xy in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangle_set_vertex_from_xy(
+    triangle: *mut sfcgal_geometry_t,
+    i: c_int,
+    x: f64,
+    y: f64
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangle_set_vertex_from_xyz.html b/sfcgal_sys/fn.sfcgal_triangle_set_vertex_from_xyz.html new file mode 100644 index 0000000..228d23f --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangle_set_vertex_from_xyz.html @@ -0,0 +1,8 @@ +sfcgal_triangle_set_vertex_from_xyz in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangle_set_vertex_from_xyz(
+    triangle: *mut sfcgal_geometry_t,
+    i: c_int,
+    x: f64,
+    y: f64,
+    z: f64
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangle_vertex.html b/sfcgal_sys/fn.sfcgal_triangle_vertex.html new file mode 100644 index 0000000..e6a8302 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangle_vertex.html @@ -0,0 +1,5 @@ +sfcgal_triangle_vertex in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangle_vertex(
+    triangle: *const sfcgal_geometry_t,
+    i: c_int
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangulated_surface_add_triangle.html b/sfcgal_sys/fn.sfcgal_triangulated_surface_add_triangle.html new file mode 100644 index 0000000..77f8eec --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangulated_surface_add_triangle.html @@ -0,0 +1,5 @@ +sfcgal_triangulated_surface_add_triangle in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangulated_surface_add_triangle(
+    tin: *mut sfcgal_geometry_t,
+    triangle: *mut sfcgal_geometry_t
+)
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangulated_surface_create.html b/sfcgal_sys/fn.sfcgal_triangulated_surface_create.html new file mode 100644 index 0000000..a7f2350 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangulated_surface_create.html @@ -0,0 +1,3 @@ +sfcgal_triangulated_surface_create in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangulated_surface_create(
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangulated_surface_num_triangles.html b/sfcgal_sys/fn.sfcgal_triangulated_surface_num_triangles.html new file mode 100644 index 0000000..9fcb44d --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangulated_surface_num_triangles.html @@ -0,0 +1,4 @@ +sfcgal_triangulated_surface_num_triangles in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangulated_surface_num_triangles(
+    tin: *const sfcgal_geometry_t
+) -> usize
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_triangulated_surface_triangle_n.html b/sfcgal_sys/fn.sfcgal_triangulated_surface_triangle_n.html new file mode 100644 index 0000000..bf6686e --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_triangulated_surface_triangle_n.html @@ -0,0 +1,5 @@ +sfcgal_triangulated_surface_triangle_n in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_triangulated_surface_triangle_n(
+    tin: *const sfcgal_geometry_t,
+    i: usize
+) -> *const sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_version.html b/sfcgal_sys/fn.sfcgal_version.html new file mode 100644 index 0000000..744e1b4 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_version.html @@ -0,0 +1,2 @@ +sfcgal_version in sfcgal_sys - Rust +

Function sfcgal_sys::sfcgal_version

source ·
pub unsafe extern "C" fn sfcgal_version() -> *const c_char
\ No newline at end of file diff --git a/sfcgal_sys/fn.sfcgal_y_monotone_partition_2.html b/sfcgal_sys/fn.sfcgal_y_monotone_partition_2.html new file mode 100644 index 0000000..5428800 --- /dev/null +++ b/sfcgal_sys/fn.sfcgal_y_monotone_partition_2.html @@ -0,0 +1,4 @@ +sfcgal_y_monotone_partition_2 in sfcgal_sys - Rust +
pub unsafe extern "C" fn sfcgal_y_monotone_partition_2(
+    geom: *const sfcgal_geometry_t
+) -> *mut sfcgal_geometry_t
\ No newline at end of file diff --git a/sfcgal_sys/fn.w_sfcgal_get_last_error.html b/sfcgal_sys/fn.w_sfcgal_get_last_error.html new file mode 100644 index 0000000..4f12359 --- /dev/null +++ b/sfcgal_sys/fn.w_sfcgal_get_last_error.html @@ -0,0 +1,2 @@ +w_sfcgal_get_last_error in sfcgal_sys - Rust +
pub unsafe extern "C" fn w_sfcgal_get_last_error() -> *mut c_char
\ No newline at end of file diff --git a/sfcgal_sys/fn.w_sfcgal_get_last_warning.html b/sfcgal_sys/fn.w_sfcgal_get_last_warning.html new file mode 100644 index 0000000..bb08e44 --- /dev/null +++ b/sfcgal_sys/fn.w_sfcgal_get_last_warning.html @@ -0,0 +1,2 @@ +w_sfcgal_get_last_warning in sfcgal_sys - Rust +
pub unsafe extern "C" fn w_sfcgal_get_last_warning() -> *mut c_char
\ No newline at end of file diff --git a/sfcgal_sys/fn.w_sfcgal_init_handlers.html b/sfcgal_sys/fn.w_sfcgal_init_handlers.html new file mode 100644 index 0000000..13f5abf --- /dev/null +++ b/sfcgal_sys/fn.w_sfcgal_init_handlers.html @@ -0,0 +1,2 @@ +w_sfcgal_init_handlers in sfcgal_sys - Rust +
pub unsafe extern "C" fn w_sfcgal_init_handlers() -> c_int
\ No newline at end of file diff --git a/sfcgal_sys/index.html b/sfcgal_sys/index.html new file mode 100644 index 0000000..ac59452 --- /dev/null +++ b/sfcgal_sys/index.html @@ -0,0 +1,3 @@ +sfcgal_sys - Rust +

Crate sfcgal_sys

source ·

Constants§

Functions§

Type Aliases§

\ No newline at end of file diff --git a/sfcgal_sys/sidebar-items.js b/sfcgal_sys/sidebar-items.js new file mode 100644 index 0000000..c36ae95 --- /dev/null +++ b/sfcgal_sys/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"constant":["sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION","sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON","sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID","sfcgal_geometry_type_t_SFCGAL_TYPE_POINT","sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON","sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE","sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID","sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE","sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE"],"fn":["initialize","sfcgal_approx_convex_partition_2","sfcgal_full_version","sfcgal_geometry_alpha_shapes","sfcgal_geometry_approximate_medial_axis","sfcgal_geometry_area","sfcgal_geometry_area_3d","sfcgal_geometry_as_text","sfcgal_geometry_as_text_decim","sfcgal_geometry_as_wkb","sfcgal_geometry_clone","sfcgal_geometry_collection_add_geometry","sfcgal_geometry_collection_create","sfcgal_geometry_collection_geometry_n","sfcgal_geometry_collection_num_geometries","sfcgal_geometry_convexhull","sfcgal_geometry_convexhull_3d","sfcgal_geometry_covers","sfcgal_geometry_covers_3d","sfcgal_geometry_delete","sfcgal_geometry_difference","sfcgal_geometry_difference_3d","sfcgal_geometry_distance","sfcgal_geometry_distance_3d","sfcgal_geometry_extrude","sfcgal_geometry_extrude_polygon_straight_skeleton","sfcgal_geometry_extrude_straight_skeleton","sfcgal_geometry_force_lhr","sfcgal_geometry_force_rhr","sfcgal_geometry_force_valid","sfcgal_geometry_has_validity_flag","sfcgal_geometry_intersection","sfcgal_geometry_intersection_3d","sfcgal_geometry_intersects","sfcgal_geometry_intersects_3d","sfcgal_geometry_is_3d","sfcgal_geometry_is_empty","sfcgal_geometry_is_measured","sfcgal_geometry_is_planar","sfcgal_geometry_is_valid","sfcgal_geometry_is_valid_detail","sfcgal_geometry_line_sub_string","sfcgal_geometry_make_solid","sfcgal_geometry_minkowski_sum","sfcgal_geometry_offset_polygon","sfcgal_geometry_optimal_alpha_shapes","sfcgal_geometry_orientation","sfcgal_geometry_round","sfcgal_geometry_straight_skeleton","sfcgal_geometry_straight_skeleton_distance_in_m","sfcgal_geometry_tesselate","sfcgal_geometry_triangulate_2dz","sfcgal_geometry_type_id","sfcgal_geometry_union","sfcgal_geometry_union_3d","sfcgal_geometry_visibility_point","sfcgal_geometry_visibility_segment","sfcgal_geometry_volume","sfcgal_greene_approx_convex_partition_2","sfcgal_init","sfcgal_io_read_binary_prepared","sfcgal_io_read_ewkt","sfcgal_io_read_wkb","sfcgal_io_read_wkt","sfcgal_io_write_binary_prepared","sfcgal_linestring_add_point","sfcgal_linestring_create","sfcgal_linestring_num_points","sfcgal_linestring_point_n","sfcgal_multi_linestring_create","sfcgal_multi_point_create","sfcgal_multi_polygon_create","sfcgal_optimal_convex_partition_2","sfcgal_point_create","sfcgal_point_create_from_xy","sfcgal_point_create_from_xym","sfcgal_point_create_from_xyz","sfcgal_point_create_from_xyzm","sfcgal_point_m","sfcgal_point_x","sfcgal_point_y","sfcgal_point_z","sfcgal_polygon_add_interior_ring","sfcgal_polygon_create","sfcgal_polygon_create_from_exterior_ring","sfcgal_polygon_exterior_ring","sfcgal_polygon_interior_ring_n","sfcgal_polygon_num_interior_rings","sfcgal_polyhedral_surface_add_polygon","sfcgal_polyhedral_surface_create","sfcgal_polyhedral_surface_num_polygons","sfcgal_polyhedral_surface_polygon_n","sfcgal_prepared_geometry_as_ewkt","sfcgal_prepared_geometry_create","sfcgal_prepared_geometry_create_from_geometry","sfcgal_prepared_geometry_delete","sfcgal_prepared_geometry_geometry","sfcgal_prepared_geometry_set_geometry","sfcgal_prepared_geometry_set_srid","sfcgal_prepared_geometry_srid","sfcgal_set_alloc_handlers","sfcgal_set_error_handlers","sfcgal_set_geometry_validation","sfcgal_solid_add_interior_shell","sfcgal_solid_create","sfcgal_solid_create_from_exterior_shell","sfcgal_solid_num_shells","sfcgal_solid_shell_n","sfcgal_triangle_create","sfcgal_triangle_create_from_points","sfcgal_triangle_set_vertex","sfcgal_triangle_set_vertex_from_xy","sfcgal_triangle_set_vertex_from_xyz","sfcgal_triangle_vertex","sfcgal_triangulated_surface_add_triangle","sfcgal_triangulated_surface_create","sfcgal_triangulated_surface_num_triangles","sfcgal_triangulated_surface_triangle_n","sfcgal_version","sfcgal_y_monotone_partition_2","w_sfcgal_get_last_error","w_sfcgal_get_last_warning","w_sfcgal_init_handlers"],"type":["sfcgal_alloc_handler_t","sfcgal_error_handler_t","sfcgal_free_handler_t","sfcgal_geometry_t","sfcgal_geometry_type_t","sfcgal_prepared_geometry_t","srid_t"]}; \ No newline at end of file diff --git a/sfcgal_sys/type.sfcgal_alloc_handler_t.html b/sfcgal_sys/type.sfcgal_alloc_handler_t.html new file mode 100644 index 0000000..db934c5 --- /dev/null +++ b/sfcgal_sys/type.sfcgal_alloc_handler_t.html @@ -0,0 +1,7 @@ +sfcgal_alloc_handler_t in sfcgal_sys - Rust +
pub type sfcgal_alloc_handler_t = Option<unsafe extern "C" fn(arg1: usize) -> *mut c_void>;

Aliased Type§

enum sfcgal_alloc_handler_t {
+    None,
+    Some(unsafe extern "C" fn(_: usize) -> *mut c_void),
+}

Variants§

§1.0.0

None

No value.

+
§1.0.0

Some(unsafe extern "C" fn(_: usize) -> *mut c_void)

Some value of type T.

+
\ No newline at end of file diff --git a/sfcgal_sys/type.sfcgal_error_handler_t.html b/sfcgal_sys/type.sfcgal_error_handler_t.html new file mode 100644 index 0000000..8884282 --- /dev/null +++ b/sfcgal_sys/type.sfcgal_error_handler_t.html @@ -0,0 +1,7 @@ +sfcgal_error_handler_t in sfcgal_sys - Rust +
pub type sfcgal_error_handler_t = Option<unsafe extern "C" fn(arg1: *const c_char, ...) -> c_int>;

Aliased Type§

enum sfcgal_error_handler_t {
+    None,
+    Some(unsafe extern "C" fn(_: *const i8, ...) -> i32),
+}

Variants§

§1.0.0

None

No value.

+
§1.0.0

Some(unsafe extern "C" fn(_: *const i8, ...) -> i32)

Some value of type T.

+
\ No newline at end of file diff --git a/sfcgal_sys/type.sfcgal_free_handler_t.html b/sfcgal_sys/type.sfcgal_free_handler_t.html new file mode 100644 index 0000000..c8e9598 --- /dev/null +++ b/sfcgal_sys/type.sfcgal_free_handler_t.html @@ -0,0 +1,7 @@ +sfcgal_free_handler_t in sfcgal_sys - Rust +
pub type sfcgal_free_handler_t = Option<unsafe extern "C" fn(arg1: *mut c_void)>;

Aliased Type§

enum sfcgal_free_handler_t {
+    None,
+    Some(unsafe extern "C" fn(_: *mut c_void)),
+}

Variants§

§1.0.0

None

No value.

+
§1.0.0

Some(unsafe extern "C" fn(_: *mut c_void))

Some value of type T.

+
\ No newline at end of file diff --git a/sfcgal_sys/type.sfcgal_geometry_t.html b/sfcgal_sys/type.sfcgal_geometry_t.html new file mode 100644 index 0000000..ba42d88 --- /dev/null +++ b/sfcgal_sys/type.sfcgal_geometry_t.html @@ -0,0 +1,4 @@ +sfcgal_geometry_t in sfcgal_sys - Rust +

Type Alias sfcgal_sys::sfcgal_geometry_t

source ·
pub type sfcgal_geometry_t = c_void;

Aliased Type§

enum sfcgal_geometry_t {
+    // some variants omitted
+}

Variants§

\ No newline at end of file diff --git a/sfcgal_sys/type.sfcgal_geometry_type_t.html b/sfcgal_sys/type.sfcgal_geometry_type_t.html new file mode 100644 index 0000000..1c16752 --- /dev/null +++ b/sfcgal_sys/type.sfcgal_geometry_type_t.html @@ -0,0 +1,2 @@ +sfcgal_geometry_type_t in sfcgal_sys - Rust +
pub type sfcgal_geometry_type_t = c_uint;
\ No newline at end of file diff --git a/sfcgal_sys/type.sfcgal_prepared_geometry_t.html b/sfcgal_sys/type.sfcgal_prepared_geometry_t.html new file mode 100644 index 0000000..80e2881 --- /dev/null +++ b/sfcgal_sys/type.sfcgal_prepared_geometry_t.html @@ -0,0 +1,4 @@ +sfcgal_prepared_geometry_t in sfcgal_sys - Rust +
pub type sfcgal_prepared_geometry_t = c_void;

Aliased Type§

enum sfcgal_prepared_geometry_t {
+    // some variants omitted
+}

Variants§

\ No newline at end of file diff --git a/sfcgal_sys/type.srid_t.html b/sfcgal_sys/type.srid_t.html new file mode 100644 index 0000000..3e33a67 --- /dev/null +++ b/sfcgal_sys/type.srid_t.html @@ -0,0 +1,2 @@ +srid_t in sfcgal_sys - Rust +

Type Alias sfcgal_sys::srid_t

source ·
pub type srid_t = u32;
\ No newline at end of file diff --git a/src-files.js b/src-files.js new file mode 100644 index 0000000..d7049fc --- /dev/null +++ b/src-files.js @@ -0,0 +1,4 @@ +var srcIndex = new Map(JSON.parse('[\ +["sfcgal_sys",["",[],["lib.rs"]]]\ +]')); +createSrcSidebar(); diff --git a/src/sfcgal_sys/home/runner/work/sfcgal-sys/sfcgal-sys/target/debug/build/sfcgal-sys-f10bb716c4dd690a/out/bindings.rs.html b/src/sfcgal_sys/home/runner/work/sfcgal-sys/sfcgal-sys/target/debug/build/sfcgal-sys-f10bb716c4dd690a/out/bindings.rs.html new file mode 100644 index 0000000..e1a7553 --- /dev/null +++ b/src/sfcgal_sys/home/runner/work/sfcgal-sys/sfcgal-sys/target/debug/build/sfcgal-sys-f10bb716c4dd690a/out/bindings.rs.html @@ -0,0 +1,1209 @@ +bindings.rs - source +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+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
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+
/* automatically generated by rust-bindgen 0.69.4 */
+
+pub type sfcgal_geometry_t = ::std::os::raw::c_void;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_POINT: sfcgal_geometry_type_t = 1;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_LINESTRING: sfcgal_geometry_type_t = 2;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_POLYGON: sfcgal_geometry_type_t = 3;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOINT: sfcgal_geometry_type_t = 4;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTILINESTRING: sfcgal_geometry_type_t = 5;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTIPOLYGON: sfcgal_geometry_type_t = 6;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_GEOMETRYCOLLECTION: sfcgal_geometry_type_t = 7;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_POLYHEDRALSURFACE: sfcgal_geometry_type_t = 15;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGULATEDSURFACE: sfcgal_geometry_type_t = 16;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_TRIANGLE: sfcgal_geometry_type_t = 17;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_SOLID: sfcgal_geometry_type_t = 101;
+pub const sfcgal_geometry_type_t_SFCGAL_TYPE_MULTISOLID: sfcgal_geometry_type_t = 102;
+pub type sfcgal_geometry_type_t = ::std::os::raw::c_uint;
+extern "C" {
+    pub fn sfcgal_set_geometry_validation(enabled: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn sfcgal_geometry_type_id(arg1: *const sfcgal_geometry_t) -> sfcgal_geometry_type_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_is_valid(arg1: *const sfcgal_geometry_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_is_valid_detail(
+        geom: *const sfcgal_geometry_t,
+        invalidity_reason: *mut *mut ::std::os::raw::c_char,
+        invalidity_location: *mut *mut sfcgal_geometry_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_is_3d(arg1: *const sfcgal_geometry_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_is_measured(arg1: *const sfcgal_geometry_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_is_empty(arg1: *const sfcgal_geometry_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_clone(arg1: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_delete(arg1: *mut sfcgal_geometry_t);
+}
+extern "C" {
+    pub fn sfcgal_geometry_as_text(
+        arg1: *const sfcgal_geometry_t,
+        buffer: *mut *mut ::std::os::raw::c_char,
+        len: *mut usize,
+    );
+}
+extern "C" {
+    pub fn sfcgal_geometry_as_text_decim(
+        arg1: *const sfcgal_geometry_t,
+        numDecimals: ::std::os::raw::c_int,
+        buffer: *mut *mut ::std::os::raw::c_char,
+        len: *mut usize,
+    );
+}
+extern "C" {
+    pub fn sfcgal_geometry_as_wkb(
+        arg1: *const sfcgal_geometry_t,
+        buffer: *mut *mut ::std::os::raw::c_char,
+        len: *mut usize,
+    );
+}
+extern "C" {
+    pub fn sfcgal_point_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_point_create_from_xy(x: f64, y: f64) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_point_create_from_xyz(x: f64, y: f64, z: f64) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_point_create_from_xym(x: f64, y: f64, m: f64) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_point_create_from_xyzm(x: f64, y: f64, z: f64, m: f64) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_point_x(arg1: *const sfcgal_geometry_t) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_point_y(arg1: *const sfcgal_geometry_t) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_point_z(arg1: *const sfcgal_geometry_t) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_point_m(arg1: *const sfcgal_geometry_t) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_linestring_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_linestring_num_points(linestring: *const sfcgal_geometry_t) -> usize;
+}
+extern "C" {
+    pub fn sfcgal_linestring_point_n(
+        linestring: *const sfcgal_geometry_t,
+        i: usize,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_linestring_add_point(
+        linestring: *mut sfcgal_geometry_t,
+        point: *mut sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_triangle_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_triangle_create_from_points(
+        pta: *const sfcgal_geometry_t,
+        ptb: *const sfcgal_geometry_t,
+        ptc: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_triangle_vertex(
+        triangle: *const sfcgal_geometry_t,
+        i: ::std::os::raw::c_int,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_triangle_set_vertex(
+        triangle: *mut sfcgal_geometry_t,
+        i: ::std::os::raw::c_int,
+        vertex: *const sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_triangle_set_vertex_from_xy(
+        triangle: *mut sfcgal_geometry_t,
+        i: ::std::os::raw::c_int,
+        x: f64,
+        y: f64,
+    );
+}
+extern "C" {
+    pub fn sfcgal_triangle_set_vertex_from_xyz(
+        triangle: *mut sfcgal_geometry_t,
+        i: ::std::os::raw::c_int,
+        x: f64,
+        y: f64,
+        z: f64,
+    );
+}
+extern "C" {
+    pub fn sfcgal_polygon_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_polygon_create_from_exterior_ring(
+        ring: *mut sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_polygon_exterior_ring(
+        polygon: *const sfcgal_geometry_t,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_polygon_num_interior_rings(polygon: *const sfcgal_geometry_t) -> usize;
+}
+extern "C" {
+    pub fn sfcgal_polygon_interior_ring_n(
+        polygon: *const sfcgal_geometry_t,
+        i: usize,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_polygon_add_interior_ring(
+        polygon: *mut sfcgal_geometry_t,
+        ring: *mut sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_geometry_collection_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_collection_num_geometries(collection: *const sfcgal_geometry_t)
+        -> usize;
+}
+extern "C" {
+    pub fn sfcgal_geometry_collection_geometry_n(
+        collection: *const sfcgal_geometry_t,
+        i: usize,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_collection_add_geometry(
+        collection: *mut sfcgal_geometry_t,
+        geometry: *mut sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_multi_point_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_multi_linestring_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_multi_polygon_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_polyhedral_surface_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_polyhedral_surface_num_polygons(polyhedral: *const sfcgal_geometry_t) -> usize;
+}
+extern "C" {
+    pub fn sfcgal_polyhedral_surface_polygon_n(
+        polyhedral: *const sfcgal_geometry_t,
+        i: usize,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_polyhedral_surface_add_polygon(
+        polyhedral: *mut sfcgal_geometry_t,
+        polygon: *mut sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_triangulated_surface_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_triangulated_surface_num_triangles(tin: *const sfcgal_geometry_t) -> usize;
+}
+extern "C" {
+    pub fn sfcgal_triangulated_surface_triangle_n(
+        tin: *const sfcgal_geometry_t,
+        i: usize,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_triangulated_surface_add_triangle(
+        tin: *mut sfcgal_geometry_t,
+        triangle: *mut sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_solid_create() -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_solid_create_from_exterior_shell(
+        shell: *mut sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_solid_num_shells(solid: *const sfcgal_geometry_t) -> usize;
+}
+extern "C" {
+    pub fn sfcgal_solid_shell_n(
+        solid: *const sfcgal_geometry_t,
+        i: usize,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_solid_add_interior_shell(
+        solid: *mut sfcgal_geometry_t,
+        shell: *mut sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_geometry_has_validity_flag(
+        geom: *const sfcgal_geometry_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_force_valid(geom: *mut sfcgal_geometry_t, valid: ::std::os::raw::c_int);
+}
+pub type sfcgal_prepared_geometry_t = ::std::os::raw::c_void;
+pub type srid_t = u32;
+extern "C" {
+    pub fn sfcgal_prepared_geometry_create() -> *mut sfcgal_prepared_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_prepared_geometry_create_from_geometry(
+        geometry: *mut sfcgal_geometry_t,
+        srid: srid_t,
+    ) -> *mut sfcgal_prepared_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_prepared_geometry_delete(prepared: *mut sfcgal_prepared_geometry_t);
+}
+extern "C" {
+    pub fn sfcgal_prepared_geometry_geometry(
+        prepared: *const sfcgal_prepared_geometry_t,
+    ) -> *const sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_prepared_geometry_set_geometry(
+        prepared: *mut sfcgal_prepared_geometry_t,
+        geometry: *mut sfcgal_geometry_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_prepared_geometry_srid(prepared: *const sfcgal_prepared_geometry_t) -> srid_t;
+}
+extern "C" {
+    pub fn sfcgal_prepared_geometry_set_srid(
+        prepared: *mut sfcgal_prepared_geometry_t,
+        arg1: srid_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_prepared_geometry_as_ewkt(
+        prepared: *const sfcgal_prepared_geometry_t,
+        num_decimals: ::std::os::raw::c_int,
+        buffer: *mut *mut ::std::os::raw::c_char,
+        len: *mut usize,
+    );
+}
+extern "C" {
+    pub fn sfcgal_io_read_wkt(
+        arg1: *const ::std::os::raw::c_char,
+        len: usize,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_io_read_ewkt(
+        arg1: *const ::std::os::raw::c_char,
+        len: usize,
+    ) -> *mut sfcgal_prepared_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_io_read_wkb(
+        arg1: *const ::std::os::raw::c_char,
+        len: usize,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_io_write_binary_prepared(
+        arg1: *const sfcgal_prepared_geometry_t,
+        arg2: *mut *mut ::std::os::raw::c_char,
+        arg3: *mut usize,
+    );
+}
+extern "C" {
+    pub fn sfcgal_io_read_binary_prepared(
+        arg1: *const ::std::os::raw::c_char,
+        l: usize,
+    ) -> *mut sfcgal_prepared_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_intersects(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_intersects_3d(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_intersection(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_intersection_3d(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_difference(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_difference_3d(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_union(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_union_3d(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_convexhull(geom: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_convexhull_3d(geom: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_volume(geom: *const sfcgal_geometry_t) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_geometry_area(geom: *const sfcgal_geometry_t) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_geometry_area_3d(geom: *const sfcgal_geometry_t) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_geometry_is_planar(geom: *const sfcgal_geometry_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_orientation(geom: *const sfcgal_geometry_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_tesselate(geom: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_triangulate_2dz(
+        geom: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_extrude(
+        geom: *const sfcgal_geometry_t,
+        ex: f64,
+        ey: f64,
+        ez: f64,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_make_solid(geom: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_force_lhr(geom: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_force_rhr(geom: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_distance(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_geometry_distance_3d(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> f64;
+}
+extern "C" {
+    pub fn sfcgal_geometry_round(
+        geom: *const sfcgal_geometry_t,
+        r: ::std::os::raw::c_int,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_minkowski_sum(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_offset_polygon(
+        geom: *const sfcgal_geometry_t,
+        radius: f64,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_straight_skeleton(
+        geom: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_straight_skeleton_distance_in_m(
+        geom: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_extrude_straight_skeleton(
+        geom: *const sfcgal_geometry_t,
+        height: f64,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_extrude_polygon_straight_skeleton(
+        geom: *const sfcgal_geometry_t,
+        building_height: f64,
+        roof_height: f64,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_approximate_medial_axis(
+        geom: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_covers(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_covers_3d(
+        geom1: *const sfcgal_geometry_t,
+        geom2: *const sfcgal_geometry_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sfcgal_geometry_line_sub_string(
+        geom: *const sfcgal_geometry_t,
+        start: f64,
+        end: f64,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_alpha_shapes(
+        geom: *const sfcgal_geometry_t,
+        alpha: f64,
+        allow_holes: bool,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_optimal_alpha_shapes(
+        geom: *const sfcgal_geometry_t,
+        allow_holes: bool,
+        nb_components: usize,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_y_monotone_partition_2(geom: *const sfcgal_geometry_t) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_approx_convex_partition_2(
+        geom: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_greene_approx_convex_partition_2(
+        geom: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_optimal_convex_partition_2(
+        geom: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_visibility_point(
+        polygon: *const sfcgal_geometry_t,
+        point: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+extern "C" {
+    pub fn sfcgal_geometry_visibility_segment(
+        polygon: *const sfcgal_geometry_t,
+        pointA: *const sfcgal_geometry_t,
+        pointB: *const sfcgal_geometry_t,
+    ) -> *mut sfcgal_geometry_t;
+}
+pub type sfcgal_error_handler_t = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    pub fn sfcgal_set_error_handlers(
+        warning_handler: sfcgal_error_handler_t,
+        error_handler: sfcgal_error_handler_t,
+    );
+}
+pub type sfcgal_alloc_handler_t =
+    ::std::option::Option<unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void>;
+pub type sfcgal_free_handler_t =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
+extern "C" {
+    pub fn sfcgal_set_alloc_handlers(
+        malloc_handler: sfcgal_alloc_handler_t,
+        free_handler: sfcgal_free_handler_t,
+    );
+}
+extern "C" {
+    pub fn sfcgal_init();
+}
+extern "C" {
+    pub fn sfcgal_version() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn sfcgal_full_version() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn w_sfcgal_init_handlers() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn w_sfcgal_get_last_error() -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn w_sfcgal_get_last_warning() -> *mut ::std::os::raw::c_char;
+}
+
\ No newline at end of file diff --git a/src/sfcgal_sys/lib.rs.html b/src/sfcgal_sys/lib.rs.html new file mode 100644 index 0000000..e87b719 --- /dev/null +++ b/src/sfcgal_sys/lib.rs.html @@ -0,0 +1,101 @@ +lib.rs - source +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+
#![allow(non_upper_case_globals)]
+#![allow(non_camel_case_types)]
+#![allow(non_snake_case)]
+
+use std::sync::Once;
+
+include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
+
+pub fn initialize() {
+    static INIT: Once = Once::new();
+    INIT.call_once(|| unsafe {
+        sfcgal_init();
+        w_sfcgal_init_handlers();
+    });
+}
+
+#[cfg(test)]
+mod tests {
+    use crate::*;
+    use std::ffi::{CStr, CString};
+
+    fn _string(raw_ptr: *const std::os::raw::c_char) -> String {
+        let c_str = unsafe { CStr::from_ptr(raw_ptr) };
+        std::str::from_utf8(c_str.to_bytes()).unwrap().to_string()
+    }
+
+    #[test]
+    fn it_works() {
+        initialize();
+        let wkt1 = CString::new("POINT(1.0 1.0)").expect("CString::new failed");
+        let point1 = unsafe { sfcgal_io_read_wkt(wkt1.as_ptr(), 14) };
+        let wkt2 = CString::new("POINT(10.0 1.0)").expect("CString::new failed");
+        let point2 = unsafe { sfcgal_io_read_wkt(wkt2.as_ptr(), 15) };
+        let distance = unsafe { sfcgal_geometry_distance(point1, point2) };
+        assert_eq!(distance, 9.0);
+    }
+
+    #[test]
+    fn it_handles_errors() {
+        initialize();
+        let wkt1 = CString::new("POINT(1, 1)").expect("CString::new failed");
+        let _point1 = unsafe { sfcgal_io_read_wkt(wkt1.as_ptr(), 10) };
+        let message = unsafe { w_sfcgal_get_last_error() };
+        assert_eq!(
+            _string(message),
+            String::from("WKT parse error, Coordinate dimension < 2 (, 1)"),
+        );
+    }
+}
+
\ No newline at end of file diff --git a/static.files/COPYRIGHT-23e9bde6c69aea69.txt b/static.files/COPYRIGHT-23e9bde6c69aea69.txt new file mode 100644 index 0000000..1447df7 --- /dev/null +++ b/static.files/COPYRIGHT-23e9bde6c69aea69.txt @@ -0,0 +1,50 @@ +# REUSE-IgnoreStart + +These documentation pages include resources by third parties. This copyright +file applies only to those resources. The following third party resources are +included, and carry their own copyright notices and license terms: + +* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2): + + Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ + with Reserved Font Name Fira Sans. + + Copyright (c) 2014, Telefonica S.A. + + Licensed under the SIL Open Font License, Version 1.1. + See FiraSans-LICENSE.txt. + +* rustdoc.css, main.js, and playpen.js: + + Copyright 2015 The Rust Developers. + Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or + the MIT license (LICENSE-MIT.txt) at your option. + +* normalize.css: + + Copyright (c) Nicolas Gallagher and Jonathan Neal. + Licensed under the MIT license (see LICENSE-MIT.txt). + +* Source Code Pro (SourceCodePro-Regular.ttf.woff2, + SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2): + + Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), + with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark + of Adobe Systems Incorporated in the United States and/or other countries. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceCodePro-LICENSE.txt. + +* Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, + SourceSerif4-It.ttf.woff2): + + Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name + 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United + States and/or other countries. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceSerif4-LICENSE.md. + +This copyright file is intended to be distributed with rustdoc output. + +# REUSE-IgnoreEnd diff --git a/static.files/FiraSans-LICENSE-db4b642586e02d97.txt b/static.files/FiraSans-LICENSE-db4b642586e02d97.txt new file mode 100644 index 0000000..d7e9c14 --- /dev/null +++ b/static.files/FiraSans-LICENSE-db4b642586e02d97.txt @@ -0,0 +1,98 @@ +// REUSE-IgnoreStart + +Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. +with Reserved Font Name < Fira >, + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +// REUSE-IgnoreEnd diff --git a/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 b/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 new file mode 100644 index 0000000..7a1e5fc Binary files /dev/null and b/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 differ diff --git a/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 b/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 new file mode 100644 index 0000000..e766e06 Binary files /dev/null and b/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 differ diff --git a/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt b/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt new file mode 100644 index 0000000..16fe87b --- /dev/null +++ b/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/static.files/LICENSE-MIT-65090b722b3f6c56.txt b/static.files/LICENSE-MIT-65090b722b3f6c56.txt new file mode 100644 index 0000000..31aa793 --- /dev/null +++ b/static.files/LICENSE-MIT-65090b722b3f6c56.txt @@ -0,0 +1,23 @@ +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 b/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 new file mode 100644 index 0000000..1866ad4 Binary files /dev/null and b/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 differ diff --git a/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt b/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt new file mode 100644 index 0000000..4b3edc2 --- /dev/null +++ b/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt @@ -0,0 +1,103 @@ +// REUSE-IgnoreStart + +Copyright (c) 2010, NAVER Corporation (https://www.navercorp.com/), + +with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, +NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, +Naver NanumPen, Naver NanumGothicEco, NanumGothicEco, Naver NanumMyeongjoEco, +NanumMyeongjoEco, Naver NanumGothicLight, NanumGothicLight, NanumBarunGothic, +Naver NanumBarunGothic, NanumSquareRound, NanumBarunPen, MaruBuri + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +// REUSE-IgnoreEnd diff --git a/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 b/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 new file mode 100644 index 0000000..462c34e Binary files /dev/null and b/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 differ diff --git a/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt b/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt new file mode 100644 index 0000000..0d2941e --- /dev/null +++ b/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt @@ -0,0 +1,97 @@ +// REUSE-IgnoreStart + +Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +// REUSE-IgnoreEnd diff --git a/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 b/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 new file mode 100644 index 0000000..10b558e Binary files /dev/null and b/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 differ diff --git a/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 b/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 new file mode 100644 index 0000000..5ec64ee Binary files /dev/null and b/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 differ diff --git a/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 b/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 new file mode 100644 index 0000000..181a07f Binary files /dev/null and b/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 differ diff --git a/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 b/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 new file mode 100644 index 0000000..2ae08a7 Binary files /dev/null and b/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 differ diff --git a/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md b/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md new file mode 100644 index 0000000..175fa4f --- /dev/null +++ b/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md @@ -0,0 +1,98 @@ + + +Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. +Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + + diff --git a/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 b/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 new file mode 100644 index 0000000..0263fc3 Binary files /dev/null and b/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 differ diff --git a/static.files/clipboard-7571035ce49a181d.svg b/static.files/clipboard-7571035ce49a181d.svg new file mode 100644 index 0000000..8adbd99 --- /dev/null +++ b/static.files/clipboard-7571035ce49a181d.svg @@ -0,0 +1 @@ + diff --git a/static.files/favicon-16x16-8b506e7a72182f1c.png b/static.files/favicon-16x16-8b506e7a72182f1c.png new file mode 100644 index 0000000..ea4b45c Binary files /dev/null and b/static.files/favicon-16x16-8b506e7a72182f1c.png differ diff --git a/static.files/favicon-2c020d218678b618.svg b/static.files/favicon-2c020d218678b618.svg new file mode 100644 index 0000000..8b34b51 --- /dev/null +++ b/static.files/favicon-2c020d218678b618.svg @@ -0,0 +1,24 @@ + + + + + diff --git a/static.files/favicon-32x32-422f7d1d52889060.png b/static.files/favicon-32x32-422f7d1d52889060.png new file mode 100644 index 0000000..69b8613 Binary files /dev/null and b/static.files/favicon-32x32-422f7d1d52889060.png differ diff --git a/static.files/main-48f368f3872407c8.js b/static.files/main-48f368f3872407c8.js new file mode 100644 index 0000000..987fae4 --- /dev/null +++ b/static.files/main-48f368f3872407c8.js @@ -0,0 +1,11 @@ +"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ + restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ + enum, trait, type, macro, \ + and const.","Search functions by type signature (e.g., vec -> usize or \ + -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"","Look for functions that accept or return \ + slices and \ + arrays by writing \ + square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px")},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}window.hideAllModals(false);e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/static.files/normalize-76eba96aa4d2e634.css b/static.files/normalize-76eba96aa4d2e634.css new file mode 100644 index 0000000..469959f --- /dev/null +++ b/static.files/normalize-76eba96aa4d2e634.css @@ -0,0 +1,2 @@ + /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type="button"],[type="reset"],[type="submit"],button{-webkit-appearance:button}[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} \ No newline at end of file diff --git a/static.files/noscript-04d5337699b92874.css b/static.files/noscript-04d5337699b92874.css new file mode 100644 index 0000000..fbd55f5 --- /dev/null +++ b/static.files/noscript-04d5337699b92874.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/static.files/rust-logo-151179464ae7ed46.svg b/static.files/rust-logo-151179464ae7ed46.svg new file mode 100644 index 0000000..62424d8 --- /dev/null +++ b/static.files/rust-logo-151179464ae7ed46.svg @@ -0,0 +1,61 @@ + + + diff --git a/static.files/rustdoc-5bc39a1768837dd0.css b/static.files/rustdoc-5bc39a1768837dd0.css new file mode 100644 index 0000000..175164e --- /dev/null +++ b/static.files/rustdoc-5bc39a1768837dd0.css @@ -0,0 +1,24 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;margin-right:0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.2rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:5px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ + ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ + \ + ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ + ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"]{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/static.files/scrape-examples-ef1e698c1d417c0c.js b/static.files/scrape-examples-ef1e698c1d417c0c.js new file mode 100644 index 0000000..ba830e3 --- /dev/null +++ b/static.files/scrape-examples-ef1e698c1d417c0c.js @@ -0,0 +1 @@ +"use strict";(function(){const DEFAULT_MAX_LINES=5;const HIDDEN_MAX_LINES=10;function scrollToLoc(elt,loc,isHidden){const lines=elt.querySelector(".src-line-numbers");let scrollOffset;const maxLines=isHidden?HIDDEN_MAX_LINES:DEFAULT_MAX_LINES;if(loc[1]-loc[0]>maxLines){const line=Math.max(0,loc[0]-1);scrollOffset=lines.children[line].offsetTop}else{const wrapper=elt.querySelector(".code-wrapper");const halfHeight=wrapper.offsetHeight/2;const offsetTop=lines.children[loc[0]].offsetTop;const lastLine=lines.children[loc[1]];const offsetBot=lastLine.offsetTop+lastLine.offsetHeight;const offsetMid=(offsetTop+offsetBot)/2;scrollOffset=offsetMid-halfHeight}lines.scrollTo(0,scrollOffset);elt.querySelector(".rust").scrollTo(0,scrollOffset)}function updateScrapedExample(example,isHidden){const locs=JSON.parse(example.attributes.getNamedItem("data-locs").textContent);let locIndex=0;const highlights=Array.prototype.slice.call(example.querySelectorAll(".highlight"));const link=example.querySelector(".scraped-example-title a");if(locs.length>1){const onChangeLoc=changeIndex=>{removeClass(highlights[locIndex],"focus");changeIndex();scrollToLoc(example,locs[locIndex][0],isHidden);addClass(highlights[locIndex],"focus");const url=locs[locIndex][1];const title=locs[locIndex][2];link.href=url;link.innerHTML=title};example.querySelector(".prev").addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex-1+locs.length)%locs.length})});example.querySelector(".next").addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex+1)%locs.length})})}const expandButton=example.querySelector(".expand");if(expandButton){expandButton.addEventListener("click",()=>{if(hasClass(example,"expanded")){removeClass(example,"expanded");scrollToLoc(example,locs[0][0],isHidden)}else{addClass(example,"expanded")}})}scrollToLoc(example,locs[0][0],isHidden)}const firstExamples=document.querySelectorAll(".scraped-example-list > .scraped-example");onEachLazy(firstExamples,el=>updateScrapedExample(el,false));onEachLazy(document.querySelectorAll(".more-examples-toggle"),toggle=>{onEachLazy(toggle.querySelectorAll(".toggle-line, .hide-more"),button=>{button.addEventListener("click",()=>{toggle.open=false})});const moreExamples=toggle.querySelectorAll(".scraped-example");toggle.querySelector("summary").addEventListener("click",()=>{setTimeout(()=>{onEachLazy(moreExamples,el=>updateScrapedExample(el,true))})},{once:true})})})() \ No newline at end of file diff --git a/static.files/search-dd67cee4cfa65049.js b/static.files/search-dd67cee4cfa65049.js new file mode 100644 index 0000000..ef8bf86 --- /dev/null +++ b/static.files/search-dd67cee4cfa65049.js @@ -0,0 +1,5 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let functionTypeFingerprint;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;let typeNameIdOfTuple;let typeNameIdOfUnit;let typeNameIdOfTupleOrUnit;function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",normalizedPathLast:"never",generics:[],bindings:new Map(),typeFilter:"primitive",bindingName,}}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){bindings.set(gen.bindingName.name,[gen,...gen.bindingName.generics]);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}else{throw["Unexpected ",c]}}parserState.pos+=1;end=parserState.pos}if(foundExclamation!==-1&&foundExclamation!==start&&isIdentCharacter(parserState.userQuery[foundExclamation-1])){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=foundExclamation}return end}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const isInBinding=parserState.isInBinding;if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else{parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push({name:name,id:null,fullPath:[name],pathWithoutLast:[],pathLast:name,normalizedPathLast:name,generics,bindings:new Map(),typeFilter:"primitive",bindingName:isInBinding,})}}else{const isStringElem=parserState.userQuery[start]==="\"";if(isStringElem){start+=1;getStringElem(query,parserState,isInGenerics);end=parserState.pos-1}else{end=getIdentEndPosition(parserState)}if(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb);if(passesUnification){return true}}return false});if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false});return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens){if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens)}return false}function checkIfInList(list,elem,whereClause,mgens){for(const entry of list){if(checkType(entry,elem,whereClause,mgens)){return true}}return false}function checkType(row,elem,whereClause,mgens){if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens)}}return unifyFunctionTypes([row],[elem],whereClause,mgens)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3);let ret_dist=maxPathEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}))}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ +${item.alias} - see \ +
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ +${item.displayPath}${name}\ +
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(forced){const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchType(itemFunctionDecoder,lowercasePaths){const c=itemFunctionDecoder.string.charCodeAt(itemFunctionDecoder.offset);itemFunctionDecoder.offset+=1;const[zero,ua,la,ob,cb]=["0","@","`","{","}"].map(c=>c.charCodeAt(0));if(c===la){return null}if(c>=zero&&c>1];itemFunctionDecoder.offset+=1;return sign?-value:value}const functionSearchType=decodeList();const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i16){itemFunctionDecoder.backrefQueue.pop()}return ret}function buildFunctionTypeFingerprint(type,output,fps){let input=type.id;if(input===typeNameIdOfArray||input===typeNameIdOfSlice){input=typeNameIdOfArrayOrSlice}if(input===typeNameIdOfTuple||input===typeNameIdOfUnit){input=typeNameIdOfTupleOrUnit}const hashint1=k=>{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}function buildIndex(rawSearchIndex){searchIndex=[];typeNameIdMap=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;typeNameIdOfArray=buildTypeMapIndex("array");typeNameIdOfSlice=buildTypeMapIndex("slice");typeNameIdOfTuple=buildTypeMapIndex("tuple");typeNameIdOfUnit=buildTypeMapIndex("unit");typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const crateRow={crate:crate,ty:3,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated:null,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionDecoder={string:crateCorpus.f,offset:0,backrefQueue:[],};const deprecatedItems=new Set(crateCorpus.c);const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type,id:id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length}TYPES_POOL=new Map()}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/static.files/settings-4313503d2e1961c2.js b/static.files/settings-4313503d2e1961c2.js new file mode 100644 index 0000000..ab425fe --- /dev/null +++ b/static.files/settings-4313503d2e1961c2.js @@ -0,0 +1,17 @@ +"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){if(settingName==="theme"){const useSystem=value==="system preference"?"true":"false";updateLocalStorage("use-system-theme",useSystem)}updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":updateTheme();updateLightAndDark();break;case"line-numbers":if(value===true){window.rustdoc_add_line_numbers_to_examples()}else{window.rustdoc_remove_line_numbers_from_examples()}break;case"hide-sidebar":if(value===true){addClass(document.documentElement,"hide-sidebar")}else{removeClass(document.documentElement,"hide-sidebar")}break}}function showLightAndDark(){removeClass(document.getElementById("preferred-light-theme"),"hidden");removeClass(document.getElementById("preferred-dark-theme"),"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme"),"hidden");addClass(document.getElementById("preferred-dark-theme"),"hidden")}function updateLightAndDark(){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||(useSystem===null&&getSettingValue("theme")===null)){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.querySelectorAll("input[type=\"checkbox\"]"),toggle=>{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=()=>{changeSetting(toggle.id,toggle.checked)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference"}}if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`\ +
+
${setting_name}
+
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ + `});output+=`\ +
+
`}else{const checked=setting["default"]===true?" checked":"";output+=`\ +
\ + \ +
`}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Hide persistent navigation bar","js_name":"hide-sidebar","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
${buildSettingsPageSections(settings)}
`;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover"}el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display="";onEachLazy(settingsMenu.querySelectorAll("input[type='checkbox']"),el=>{const val=getSettingValue(el.id);const checked=val==="true";if(checked!==el.checked&&val!==null){el.checked=checked}})}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=event=>{event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(settingsMenu.contains(event.target)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/static.files/src-script-e66d777a5a92e9b2.js b/static.files/src-script-e66d777a5a92e9b2.js new file mode 100644 index 0000000..d0aebb8 --- /dev/null +++ b/static.files/src-script-e66d777a5a92e9b2.js @@ -0,0 +1 @@ +"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth{removeClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","false")};window.rustdocShowSourceSidebar=()=>{addClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","true")};window.rustdocToggleSrcSidebar=()=>{if(document.documentElement.classList.contains("src-sidebar-expanded")){window.rustdocCloseSourceSidebar()}else{window.rustdocShowSourceSidebar()}};function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;for(const[key,source]of srcIndex){source[NAME_OFFSET]=key;hasFoundFile=createDirEntry(source,sidebar,"",hasFoundFile)}container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}function highlightSrcLines(){const match=window.location.hash.match(/^#?(\d+)(?:-(\d+))?$/);if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("a"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSrcLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return}ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",highlightSrcLines);onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSrcHighlight)});highlightSrcLines();window.createSrcSidebar=createSrcSidebar})() \ No newline at end of file diff --git a/static.files/storage-4c98445ec4002617.js b/static.files/storage-4c98445ec4002617.js new file mode 100644 index 0000000..b378b85 --- /dev/null +++ b/static.files/storage-4c98445ec4002617.js @@ -0,0 +1 @@ +"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func){for(const elem of arr){if(func(elem)){return true}}return false}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){const themeNames=getVar("themes").split(",").filter(t=>t);themeNames.push(...builtinThemes);if(themeNames.indexOf(newThemeName)===-1){return}if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+encodeURIComponent(newThemeName)+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar")}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px")}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px")}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0)}}) \ No newline at end of file diff --git a/static.files/wheel-7b819b6101059cd0.svg b/static.files/wheel-7b819b6101059cd0.svg new file mode 100644 index 0000000..83c07f6 --- /dev/null +++ b/static.files/wheel-7b819b6101059cd0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/type.impl/core/option/enum.Option.js b/type.impl/core/option/enum.Option.js new file mode 100644 index 0000000..a9382f8 --- /dev/null +++ b/type.impl/core/option/enum.Option.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"sfcgal_sys":[["
source§

impl<T> Option<T>

1.0.0 (const: 1.48.0) · source

pub const fn is_some(&self) -> bool

Returns true if the option is a Some value.

\n
§Examples
\n
let x: Option<u32> = Some(2);\nassert_eq!(x.is_some(), true);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_some(), false);
\n
1.70.0 · source

pub fn is_some_and(self, f: impl FnOnce(T) -> bool) -> bool

Returns true if the option is a Some and the value inside of it matches a predicate.

\n
§Examples
\n
let x: Option<u32> = Some(2);\nassert_eq!(x.is_some_and(|x| x > 1), true);\n\nlet x: Option<u32> = Some(0);\nassert_eq!(x.is_some_and(|x| x > 1), false);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_some_and(|x| x > 1), false);
\n
1.0.0 (const: 1.48.0) · source

pub const fn is_none(&self) -> bool

Returns true if the option is a None value.

\n
§Examples
\n
let x: Option<u32> = Some(2);\nassert_eq!(x.is_none(), false);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_none(), true);
\n
1.0.0 (const: 1.48.0) · source

pub const fn as_ref(&self) -> Option<&T>

Converts from &Option<T> to Option<&T>.

\n
§Examples
\n

Calculates the length of an Option<String> as an Option<usize>\nwithout moving the String. The map method takes the self argument by value,\nconsuming the original, so this technique uses as_ref to first take an Option to a\nreference to the value inside the original.

\n\n
let text: Option<String> = Some(\"Hello, world!\".to_string());\n// First, cast `Option<String>` to `Option<&String>` with `as_ref`,\n// then consume *that* with `map`, leaving `text` on the stack.\nlet text_length: Option<usize> = text.as_ref().map(|s| s.len());\nprintln!(\"still can print text: {text:?}\");
\n
1.0.0 (const: unstable) · source

pub fn as_mut(&mut self) -> Option<&mut T>

Converts from &mut Option<T> to Option<&mut T>.

\n
§Examples
\n
let mut x = Some(2);\nmatch x.as_mut() {\n    Some(v) => *v = 42,\n    None => {},\n}\nassert_eq!(x, Some(42));
\n
1.33.0 (const: unstable) · source

pub fn as_pin_ref(self: Pin<&Option<T>>) -> Option<Pin<&T>>

Converts from Pin<&Option<T>> to Option<Pin<&T>>.

\n
1.33.0 (const: unstable) · source

pub fn as_pin_mut(self: Pin<&mut Option<T>>) -> Option<Pin<&mut T>>

Converts from Pin<&mut Option<T>> to Option<Pin<&mut T>>.

\n
1.75.0 · source

pub fn as_slice(&self) -> &[T]

Returns a slice of the contained value, if any. If this is None, an\nempty slice is returned. This can be useful to have a single type of\niterator over an Option or slice.

\n

Note: Should you have an Option<&T> and wish to get a slice of T,\nyou can unpack it via opt.map_or(&[], std::slice::from_ref).

\n
§Examples
\n
assert_eq!(\n    [Some(1234).as_slice(), None.as_slice()],\n    [&[1234][..], &[][..]],\n);
\n

The inverse of this function is (discounting\nborrowing) [_]::first:

\n\n
for i in [Some(1234_u16), None] {\n    assert_eq!(i.as_ref(), i.as_slice().first());\n}
\n
1.75.0 · source

pub fn as_mut_slice(&mut self) -> &mut [T]

Returns a mutable slice of the contained value, if any. If this is\nNone, an empty slice is returned. This can be useful to have a\nsingle type of iterator over an Option or slice.

\n

Note: Should you have an Option<&mut T> instead of a\n&mut Option<T>, which this method takes, you can obtain a mutable\nslice via opt.map_or(&mut [], std::slice::from_mut).

\n
§Examples
\n
assert_eq!(\n    [Some(1234).as_mut_slice(), None.as_mut_slice()],\n    [&mut [1234][..], &mut [][..]],\n);
\n

The result is a mutable slice of zero or one items that points into\nour original Option:

\n\n
let mut x = Some(1234);\nx.as_mut_slice()[0] += 1;\nassert_eq!(x, Some(1235));
\n

The inverse of this method (discounting borrowing)\nis [_]::first_mut:

\n\n
assert_eq!(Some(123).as_mut_slice().first_mut(), Some(&mut 123))
\n
1.0.0 (const: unstable) · source

pub fn expect(self, msg: &str) -> T

Returns the contained Some value, consuming the self value.

\n
§Panics
\n

Panics if the value is a None with a custom panic message provided by\nmsg.

\n
§Examples
\n
let x = Some(\"value\");\nassert_eq!(x.expect(\"fruits are healthy\"), \"value\");
\n\n
let x: Option<&str> = None;\nx.expect(\"fruits are healthy\"); // panics with `fruits are healthy`
\n
§Recommended Message Style
\n

We recommend that expect messages are used to describe the reason you\nexpect the Option should be Some.

\n\n
let item = slice.get(0)\n    .expect(\"slice should not be empty\");
\n

Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

\n

For more detail on expect message styles and the reasoning behind our\nrecommendation please refer to the section on “Common Message\nStyles” in the std::error module docs.

\n
1.0.0 (const: unstable) · source

pub fn unwrap(self) -> T

Returns the contained Some value, consuming the self value.

\n

Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the None\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

\n
§Panics
\n

Panics if the self value equals None.

\n
§Examples
\n
let x = Some(\"air\");\nassert_eq!(x.unwrap(), \"air\");
\n\n
let x: Option<&str> = None;\nassert_eq!(x.unwrap(), \"air\"); // fails
\n
1.0.0 · source

pub fn unwrap_or(self, default: T) -> T

Returns the contained Some value or a provided default.

\n

Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

\n
§Examples
\n
assert_eq!(Some(\"car\").unwrap_or(\"bike\"), \"car\");\nassert_eq!(None.unwrap_or(\"bike\"), \"bike\");
\n
1.0.0 · source

pub fn unwrap_or_else<F>(self, f: F) -> T
where\n F: FnOnce() -> T,

Returns the contained Some value or computes it from a closure.

\n
§Examples
\n
let k = 10;\nassert_eq!(Some(4).unwrap_or_else(|| 2 * k), 4);\nassert_eq!(None.unwrap_or_else(|| 2 * k), 20);
\n
1.0.0 · source

pub fn unwrap_or_default(self) -> T
where\n T: Default,

Returns the contained Some value or a default.

\n

Consumes the self argument then, if Some, returns the contained\nvalue, otherwise if None, returns the default value for that\ntype.

\n
§Examples
\n
let x: Option<u32> = None;\nlet y: Option<u32> = Some(12);\n\nassert_eq!(x.unwrap_or_default(), 0);\nassert_eq!(y.unwrap_or_default(), 12);
\n
1.58.0 (const: unstable) · source

pub unsafe fn unwrap_unchecked(self) -> T

Returns the contained Some value, consuming the self value,\nwithout checking that the value is not None.

\n
§Safety
\n

Calling this method on None is undefined behavior.

\n
§Examples
\n
let x = Some(\"air\");\nassert_eq!(unsafe { x.unwrap_unchecked() }, \"air\");
\n\n
let x: Option<&str> = None;\nassert_eq!(unsafe { x.unwrap_unchecked() }, \"air\"); // Undefined behavior!
\n
1.0.0 · source

pub fn map<U, F>(self, f: F) -> Option<U>
where\n F: FnOnce(T) -> U,

Maps an Option<T> to Option<U> by applying a function to a contained value (if Some) or returns None (if None).

\n
§Examples
\n

Calculates the length of an Option<String> as an\nOption<usize>, consuming the original:

\n\n
let maybe_some_string = Some(String::from(\"Hello, World!\"));\n// `Option::map` takes self *by value*, consuming `maybe_some_string`\nlet maybe_some_len = maybe_some_string.map(|s| s.len());\nassert_eq!(maybe_some_len, Some(13));\n\nlet x: Option<&str> = None;\nassert_eq!(x.map(|s| s.len()), None);
\n
1.76.0 · source

pub fn inspect<F>(self, f: F) -> Option<T>
where\n F: FnOnce(&T),

Calls the provided closure with a reference to the contained value (if Some).

\n
§Examples
\n
let v = vec![1, 2, 3, 4, 5];\n\n// prints \"got: 4\"\nlet x: Option<&usize> = v.get(3).inspect(|x| println!(\"got: {x}\"));\n\n// prints nothing\nlet x: Option<&usize> = v.get(5).inspect(|x| println!(\"got: {x}\"));
\n
1.0.0 · source

pub fn map_or<U, F>(self, default: U, f: F) -> U
where\n F: FnOnce(T) -> U,

Returns the provided default result (if none),\nor applies a function to the contained value (if any).

\n

Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

\n
§Examples
\n
let x = Some(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Option<&str> = None;\nassert_eq!(x.map_or(42, |v| v.len()), 42);
\n
1.0.0 · source

pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
where\n D: FnOnce() -> U,\n F: FnOnce(T) -> U,

Computes a default function result (if none), or\napplies a different function to the contained value (if any).

\n
§Basic examples
\n
let k = 21;\n\nlet x = Some(\"foo\");\nassert_eq!(x.map_or_else(|| 2 * k, |v| v.len()), 3);\n\nlet x: Option<&str> = None;\nassert_eq!(x.map_or_else(|| 2 * k, |v| v.len()), 42);
\n
§Handling a Result-based fallback
\n

A somewhat common occurrence when dealing with optional values\nin combination with Result<T, E> is the case where one wants to invoke\na fallible fallback if the option is not present. This example\nparses a command line argument (if present), or the contents of a file to\nan integer. However, unlike accessing the command line argument, reading\nthe file is fallible, so it must be wrapped with Ok.

\n\n
let v: u64 = std::env::args()\n   .nth(1)\n   .map_or_else(|| std::fs::read_to_string(\"/etc/someconfig.conf\"), Ok)?\n   .parse()?;
\n
1.0.0 · source

pub fn ok_or<E>(self, err: E) -> Result<T, E>

Transforms the Option<T> into a Result<T, E>, mapping Some(v) to\nOk(v) and None to Err(err).

\n

Arguments passed to ok_or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use ok_or_else, which is\nlazily evaluated.

\n
§Examples
\n
let x = Some(\"foo\");\nassert_eq!(x.ok_or(0), Ok(\"foo\"));\n\nlet x: Option<&str> = None;\nassert_eq!(x.ok_or(0), Err(0));
\n
1.0.0 · source

pub fn ok_or_else<E, F>(self, err: F) -> Result<T, E>
where\n F: FnOnce() -> E,

Transforms the Option<T> into a Result<T, E>, mapping Some(v) to\nOk(v) and None to Err(err()).

\n
§Examples
\n
let x = Some(\"foo\");\nassert_eq!(x.ok_or_else(|| 0), Ok(\"foo\"));\n\nlet x: Option<&str> = None;\nassert_eq!(x.ok_or_else(|| 0), Err(0));
\n
1.40.0 · source

pub fn as_deref(&self) -> Option<&<T as Deref>::Target>
where\n T: Deref,

Converts from Option<T> (or &Option<T>) to Option<&T::Target>.

\n

Leaves the original Option in-place, creating a new one with a reference\nto the original one, additionally coercing the contents via Deref.

\n
§Examples
\n
let x: Option<String> = Some(\"hey\".to_owned());\nassert_eq!(x.as_deref(), Some(\"hey\"));\n\nlet x: Option<String> = None;\nassert_eq!(x.as_deref(), None);
\n
1.40.0 · source

pub fn as_deref_mut(&mut self) -> Option<&mut <T as Deref>::Target>
where\n T: DerefMut,

Converts from Option<T> (or &mut Option<T>) to Option<&mut T::Target>.

\n

Leaves the original Option in-place, creating a new one containing a mutable reference to\nthe inner type’s Deref::Target type.

\n
§Examples
\n
let mut x: Option<String> = Some(\"hey\".to_owned());\nassert_eq!(x.as_deref_mut().map(|x| {\n    x.make_ascii_uppercase();\n    x\n}), Some(\"HEY\".to_owned().as_mut_str()));
\n
1.0.0 (const: unstable) · source

pub fn iter(&self) -> Iter<'_, T>

Returns an iterator over the possibly contained value.

\n
§Examples
\n
let x = Some(4);\nassert_eq!(x.iter().next(), Some(&4));\n\nlet x: Option<u32> = None;\nassert_eq!(x.iter().next(), None);
\n
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, T>

Returns a mutable iterator over the possibly contained value.

\n
§Examples
\n
let mut x = Some(4);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 42,\n    None => {},\n}\nassert_eq!(x, Some(42));\n\nlet mut x: Option<u32> = None;\nassert_eq!(x.iter_mut().next(), None);
\n
1.0.0 · source

pub fn and<U>(self, optb: Option<U>) -> Option<U>

Returns None if the option is None, otherwise returns optb.

\n

Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

\n
§Examples
\n
let x = Some(2);\nlet y: Option<&str> = None;\nassert_eq!(x.and(y), None);\n\nlet x: Option<u32> = None;\nlet y = Some(\"foo\");\nassert_eq!(x.and(y), None);\n\nlet x = Some(2);\nlet y = Some(\"foo\");\nassert_eq!(x.and(y), Some(\"foo\"));\n\nlet x: Option<u32> = None;\nlet y: Option<&str> = None;\nassert_eq!(x.and(y), None);
\n
1.0.0 · source

pub fn and_then<U, F>(self, f: F) -> Option<U>
where\n F: FnOnce(T) -> Option<U>,

Returns None if the option is None, otherwise calls f with the\nwrapped value and returns the result.

\n

Some languages call this operation flatmap.

\n
§Examples
\n
fn sq_then_to_string(x: u32) -> Option<String> {\n    x.checked_mul(x).map(|sq| sq.to_string())\n}\n\nassert_eq!(Some(2).and_then(sq_then_to_string), Some(4.to_string()));\nassert_eq!(Some(1_000_000).and_then(sq_then_to_string), None); // overflowed!\nassert_eq!(None.and_then(sq_then_to_string), None);
\n

Often used to chain fallible operations that may return None.

\n\n
let arr_2d = [[\"A0\", \"A1\"], [\"B0\", \"B1\"]];\n\nlet item_0_1 = arr_2d.get(0).and_then(|row| row.get(1));\nassert_eq!(item_0_1, Some(&\"A1\"));\n\nlet item_2_0 = arr_2d.get(2).and_then(|row| row.get(0));\nassert_eq!(item_2_0, None);
\n
1.27.0 · source

pub fn filter<P>(self, predicate: P) -> Option<T>
where\n P: FnOnce(&T) -> bool,

Returns None if the option is None, otherwise calls predicate\nwith the wrapped value and returns:

\n
    \n
  • Some(t) if predicate returns true (where t is the wrapped\nvalue), and
  • \n
  • None if predicate returns false.
  • \n
\n

This function works similar to Iterator::filter(). You can imagine\nthe Option<T> being an iterator over one or zero elements. filter()\nlets you decide which elements to keep.

\n
§Examples
\n
fn is_even(n: &i32) -> bool {\n    n % 2 == 0\n}\n\nassert_eq!(None.filter(is_even), None);\nassert_eq!(Some(3).filter(is_even), None);\nassert_eq!(Some(4).filter(is_even), Some(4));
\n
1.0.0 · source

pub fn or(self, optb: Option<T>) -> Option<T>

Returns the option if it contains a value, otherwise returns optb.

\n

Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

\n
§Examples
\n
let x = Some(2);\nlet y = None;\nassert_eq!(x.or(y), Some(2));\n\nlet x = None;\nlet y = Some(100);\nassert_eq!(x.or(y), Some(100));\n\nlet x = Some(2);\nlet y = Some(100);\nassert_eq!(x.or(y), Some(2));\n\nlet x: Option<u32> = None;\nlet y = None;\nassert_eq!(x.or(y), None);
\n
1.0.0 · source

pub fn or_else<F>(self, f: F) -> Option<T>
where\n F: FnOnce() -> Option<T>,

Returns the option if it contains a value, otherwise calls f and\nreturns the result.

\n
§Examples
\n
fn nobody() -> Option<&'static str> { None }\nfn vikings() -> Option<&'static str> { Some(\"vikings\") }\n\nassert_eq!(Some(\"barbarians\").or_else(vikings), Some(\"barbarians\"));\nassert_eq!(None.or_else(vikings), Some(\"vikings\"));\nassert_eq!(None.or_else(nobody), None);
\n
1.37.0 · source

pub fn xor(self, optb: Option<T>) -> Option<T>

Returns Some if exactly one of self, optb is Some, otherwise returns None.

\n
§Examples
\n
let x = Some(2);\nlet y: Option<u32> = None;\nassert_eq!(x.xor(y), Some(2));\n\nlet x: Option<u32> = None;\nlet y = Some(2);\nassert_eq!(x.xor(y), Some(2));\n\nlet x = Some(2);\nlet y = Some(2);\nassert_eq!(x.xor(y), None);\n\nlet x: Option<u32> = None;\nlet y: Option<u32> = None;\nassert_eq!(x.xor(y), None);
\n
1.53.0 · source

pub fn insert(&mut self, value: T) -> &mut T

Inserts value into the option, then returns a mutable reference to it.

\n

If the option already contains a value, the old value is dropped.

\n

See also Option::get_or_insert, which doesn’t update the value if\nthe option already contains Some.

\n
§Example
\n
let mut opt = None;\nlet val = opt.insert(1);\nassert_eq!(*val, 1);\nassert_eq!(opt.unwrap(), 1);\nlet val = opt.insert(2);\nassert_eq!(*val, 2);\n*val = 3;\nassert_eq!(opt.unwrap(), 3);
\n
1.20.0 · source

pub fn get_or_insert(&mut self, value: T) -> &mut T

Inserts value into the option if it is None, then\nreturns a mutable reference to the contained value.

\n

See also Option::insert, which updates the value even if\nthe option already contains Some.

\n
§Examples
\n
let mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert(5);\n    assert_eq!(y, &5);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
\n
source

pub fn get_or_insert_default(&mut self) -> &mut T
where\n T: Default,

🔬This is a nightly-only experimental API. (option_get_or_insert_default)

Inserts the default value into the option if it is None, then\nreturns a mutable reference to the contained value.

\n
§Examples
\n
#![feature(option_get_or_insert_default)]\n\nlet mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert_default();\n    assert_eq!(y, &0);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
\n
1.20.0 · source

pub fn get_or_insert_with<F>(&mut self, f: F) -> &mut T
where\n F: FnOnce() -> T,

Inserts a value computed from f into the option if it is None,\nthen returns a mutable reference to the contained value.

\n
§Examples
\n
let mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert_with(|| 5);\n    assert_eq!(y, &5);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
\n
1.0.0 (const: unstable) · source

pub fn take(&mut self) -> Option<T>

Takes the value out of the option, leaving a None in its place.

\n
§Examples
\n
let mut x = Some(2);\nlet y = x.take();\nassert_eq!(x, None);\nassert_eq!(y, Some(2));\n\nlet mut x: Option<u32> = None;\nlet y = x.take();\nassert_eq!(x, None);\nassert_eq!(y, None);
\n
source

pub fn take_if<P>(&mut self, predicate: P) -> Option<T>
where\n P: FnOnce(&mut T) -> bool,

🔬This is a nightly-only experimental API. (option_take_if)

Takes the value out of the option, but only if the predicate evaluates to\ntrue on a mutable reference to the value.

\n

In other words, replaces self with None if the predicate returns true.\nThis method operates similar to Option::take but conditional.

\n
§Examples
\n
#![feature(option_take_if)]\n\nlet mut x = Some(42);\n\nlet prev = x.take_if(|v| if *v == 42 {\n    *v += 1;\n    false\n} else {\n    false\n});\nassert_eq!(x, Some(43));\nassert_eq!(prev, None);\n\nlet prev = x.take_if(|v| *v == 43);\nassert_eq!(x, None);\nassert_eq!(prev, Some(43));
\n
1.31.0 (const: unstable) · source

pub fn replace(&mut self, value: T) -> Option<T>

Replaces the actual value in the option by the value given in parameter,\nreturning the old value if present,\nleaving a Some in its place without deinitializing either one.

\n
§Examples
\n
let mut x = Some(2);\nlet old = x.replace(5);\nassert_eq!(x, Some(5));\nassert_eq!(old, Some(2));\n\nlet mut x = None;\nlet old = x.replace(3);\nassert_eq!(x, Some(3));\nassert_eq!(old, None);
\n
1.46.0 · source

pub fn zip<U>(self, other: Option<U>) -> Option<(T, U)>

Zips self with another Option.

\n

If self is Some(s) and other is Some(o), this method returns Some((s, o)).\nOtherwise, None is returned.

\n
§Examples
\n
let x = Some(1);\nlet y = Some(\"hi\");\nlet z = None::<u8>;\n\nassert_eq!(x.zip(y), Some((1, \"hi\")));\nassert_eq!(x.zip(z), None);
\n
source

pub fn zip_with<U, F, R>(self, other: Option<U>, f: F) -> Option<R>
where\n F: FnOnce(T, U) -> R,

🔬This is a nightly-only experimental API. (option_zip)

Zips self and another Option with function f.

\n

If self is Some(s) and other is Some(o), this method returns Some(f(s, o)).\nOtherwise, None is returned.

\n
§Examples
\n
#![feature(option_zip)]\n\n#[derive(Debug, PartialEq)]\nstruct Point {\n    x: f64,\n    y: f64,\n}\n\nimpl Point {\n    fn new(x: f64, y: f64) -> Self {\n        Self { x, y }\n    }\n}\n\nlet x = Some(17.5);\nlet y = Some(42.7);\n\nassert_eq!(x.zip_with(y, Point::new), Some(Point { x: 17.5, y: 42.7 }));\nassert_eq!(x.zip_with(None, Point::new), None);
\n
",0,"sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> PartialOrd for Option<T>
where\n T: PartialOrd,

source§

fn partial_cmp(&self, other: &Option<T>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
","PartialOrd","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<A, V> FromIterator<Option<A>> for Option<V>
where\n V: FromIterator<A>,

source§

fn from_iter<I>(iter: I) -> Option<V>
where\n I: IntoIterator<Item = Option<A>>,

Takes each element in the Iterator: if it is None,\nno further elements are taken, and the None is\nreturned. Should no None occur, a container of type\nV containing the values of each Option is returned.

\n
§Examples
\n

Here is an example which increments every integer in a vector.\nWe use the checked variant of add that returns None when the\ncalculation would result in an overflow.

\n\n
let items = vec![0_u16, 1, 2];\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| x.checked_add(1))\n    .collect();\n\nassert_eq!(res, Some(vec![1, 2, 3]));
\n

As you can see, this will return the expected, valid items.

\n

Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

\n\n
let items = vec![2_u16, 1, 0];\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| x.checked_sub(1))\n    .collect();\n\nassert_eq!(res, None);
\n

Since the last element is zero, it would underflow. Thus, the resulting\nvalue is None.

\n

Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first None.

\n\n
let items = vec![3_u16, 2, 1, 10];\n\nlet mut shared = 0;\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| { shared += x; x.checked_sub(2) })\n    .collect();\n\nassert_eq!(res, None);\nassert_eq!(shared, 6);
\n

Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

\n
","FromIterator>","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> Hash for Option<T>
where\n T: Hash,

source§

fn hash<__H>(&self, state: &mut __H)
where\n __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
","Hash","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> Clone for Option<T>
where\n T: Clone,

source§

fn clone(&self) -> Option<T>

Returns a copy of the value. Read more
source§

fn clone_from(&mut self, source: &Option<T>)

Performs copy-assignment from source. Read more
","Clone","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> IntoIterator for Option<T>

source§

fn into_iter(self) -> IntoIter<T>

Returns a consuming iterator over the possibly contained value.

\n
§Examples
\n
let x = Some(\"string\");\nlet v: Vec<&str> = x.into_iter().collect();\nassert_eq!(v, [\"string\"]);\n\nlet x = None;\nlet v: Vec<&str> = x.into_iter().collect();\nassert!(v.is_empty());
\n
§

type Item = T

The type of the elements being iterated over.
§

type IntoIter = IntoIter<T>

Which kind of iterator are we turning this into?
","IntoIterator","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> Debug for Option<T>
where\n T: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> StructuralPartialEq for Option<T>

","StructuralPartialEq","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> Eq for Option<T>
where\n T: Eq,

","Eq","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.37.0 · source§

impl<T, U> Sum<Option<U>> for Option<T>
where\n T: Sum<U>,

source§

fn sum<I>(iter: I) -> Option<T>
where\n I: Iterator<Item = Option<U>>,

Takes each element in the Iterator: if it is a None, no further\nelements are taken, and the None is returned. Should no None\noccur, the sum of all elements is returned.

\n
§Examples
\n

This sums up the position of the character ‘a’ in a vector of strings,\nif a word did not have the character ‘a’ the operation returns None:

\n\n
let words = vec![\"have\", \"a\", \"great\", \"day\"];\nlet total: Option<usize> = words.iter().map(|w| w.find('a')).sum();\nassert_eq!(total, Some(5));\nlet words = vec![\"have\", \"a\", \"good\", \"day\"];\nlet total: Option<usize> = words.iter().map(|w| w.find('a')).sum();\nassert_eq!(total, None);
\n
","Sum>","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> Ord for Option<T>
where\n T: Ord,

source§

fn cmp(&self, other: &Option<T>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> Copy for Option<T>
where\n T: Copy,

","Copy","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> PartialEq for Option<T>
where\n T: PartialEq,

source§

fn eq(&self, other: &Option<T>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
source§

impl<T> FromResidual<Yeet<()>> for Option<T>

source§

fn from_residual(_: Yeet<()>) -> Option<T>

🔬This is a nightly-only experimental API. (try_trait_v2)
Constructs the type from a compatible Residual type. Read more
","FromResidual>","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
source§

impl<T> FromResidual for Option<T>

source§

fn from_residual(residual: Option<Infallible>) -> Option<T>

🔬This is a nightly-only experimental API. (try_trait_v2)
Constructs the type from a compatible Residual type. Read more
","FromResidual","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.37.0 · source§

impl<T, U> Product<Option<U>> for Option<T>
where\n T: Product<U>,

source§

fn product<I>(iter: I) -> Option<T>
where\n I: Iterator<Item = Option<U>>,

Takes each element in the Iterator: if it is a None, no further\nelements are taken, and the None is returned. Should no None\noccur, the product of all elements is returned.

\n
§Examples
\n

This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns None:

\n\n
let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Option<usize> = nums.iter().map(|w| w.parse::<usize>().ok()).product();\nassert_eq!(total, Some(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Option<usize> = nums.iter().map(|w| w.parse::<usize>().ok()).product();\nassert_eq!(total, None);
\n
","Product>","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.12.0 · source§

impl<T> From<T> for Option<T>

source§

fn from(val: T) -> Option<T>

Moves val into a new Some.

\n
§Examples
\n
let o: Option<u8> = Option::from(67);\n\nassert_eq!(Some(67), o);
\n
","From","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
source§

impl<T> Try for Option<T>

§

type Output = T

🔬This is a nightly-only experimental API. (try_trait_v2)
The type of the value produced by ? when not short-circuiting.
§

type Residual = Option<Infallible>

🔬This is a nightly-only experimental API. (try_trait_v2)
The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
source§

fn from_output(output: <Option<T> as Try>::Output) -> Option<T>

🔬This is a nightly-only experimental API. (try_trait_v2)
Constructs the type from its Output type. Read more
source§

fn branch(\n self\n) -> ControlFlow<<Option<T> as Try>::Residual, <Option<T> as Try>::Output>

🔬This is a nightly-only experimental API. (try_trait_v2)
Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
","Try","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"],["
1.0.0 · source§

impl<T> Default for Option<T>

source§

fn default() -> Option<T>

Returns None.

\n
§Examples
\n
let opt: Option<u32> = Option::default();\nassert!(opt.is_none());
\n
","Default","sfcgal_sys::sfcgal_error_handler_t","sfcgal_sys::sfcgal_alloc_handler_t","sfcgal_sys::sfcgal_free_handler_t"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/std/os/raw/type.c_uint.js b/type.impl/std/os/raw/type.c_uint.js new file mode 100644 index 0000000..85ae29c --- /dev/null +++ b/type.impl/std/os/raw/type.c_uint.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"sfcgal_sys":[] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/std/os/raw/type.c_void.js b/type.impl/std/os/raw/type.c_void.js new file mode 100644 index 0000000..85ae29c --- /dev/null +++ b/type.impl/std/os/raw/type.c_void.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"sfcgal_sys":[] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/std/primitive.u32.js b/type.impl/std/primitive.u32.js new file mode 100644 index 0000000..85ae29c --- /dev/null +++ b/type.impl/std/primitive.u32.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"sfcgal_sys":[] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file