summaryrefslogtreecommitdiff
path: root/bindgen/codegen/postprocessing/sort_semantically.rs
diff options
context:
space:
mode:
authorChristian Poveda <31802960+pvdrz@users.noreply.github.com>2022-10-04 20:56:55 -0500
committerGitHub <noreply@github.com>2022-10-04 20:56:55 -0500
commit73ce4bc9a546cc765714d5e4e333e636e03e360e (patch)
treeb5954c6680b243c0b1671a80ea973ef90877e462 /bindgen/codegen/postprocessing/sort_semantically.rs
parenta900f8f863d1313ad76603234aaeea22bb9ba7b3 (diff)
parent0296f9e86c7756e718b6b82836ce1e09b5f8d08a (diff)
Merge pull request #2284 from ferrous-systems/bindgen-as-workspace
Bindgen as a workspace
Diffstat (limited to 'bindgen/codegen/postprocessing/sort_semantically.rs')
-rw-r--r--bindgen/codegen/postprocessing/sort_semantically.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/bindgen/codegen/postprocessing/sort_semantically.rs b/bindgen/codegen/postprocessing/sort_semantically.rs
new file mode 100644
index 00000000..96596cb0
--- /dev/null
+++ b/bindgen/codegen/postprocessing/sort_semantically.rs
@@ -0,0 +1,24 @@
+use syn::Item;
+
+pub(super) fn sort_semantically(items: &mut [Item]) {
+ items.sort_by_key(|item| match item {
+ Item::Type(_) => 0,
+ Item::Struct(_) => 1,
+ Item::Const(_) => 2,
+ Item::Fn(_) => 3,
+ Item::Enum(_) => 4,
+ Item::Union(_) => 5,
+ Item::Static(_) => 6,
+ Item::Trait(_) => 7,
+ Item::TraitAlias(_) => 8,
+ Item::Impl(_) => 9,
+ Item::Mod(_) => 10,
+ Item::Use(_) => 11,
+ Item::Verbatim(_) => 12,
+ Item::ExternCrate(_) => 13,
+ Item::ForeignMod(_) => 14,
+ Item::Macro(_) => 15,
+ Item::Macro2(_) => 16,
+ _ => 18,
+ });
+}