tree_sitter_kotlin_sqry/
lib.rs1use tree_sitter::Language;
10
11unsafe extern "C" {
12 fn tree_sitter_kotlin() -> Language;
13}
14
15#[must_use = "Language handles must be registered with tree-sitter consumers"]
17pub fn language() -> Language {
18 let lang = unsafe { tree_sitter_kotlin() };
19 sqry_tree_sitter_support::validate_language_or_panic(lang, "Kotlin")
20}
21
22#[allow(clippy::missing_errors_doc)] pub fn try_language() -> Result<Language, sqry_tree_sitter_support::TreeSitterError> {
25 let lang = unsafe { tree_sitter_kotlin() };
26 sqry_tree_sitter_support::validate_language(lang)
27}
28
29pub const NODE_TYPES: &str = include_str!("../grammar-src/node-types.json");
31
32#[cfg(test)]
33mod tests {
34 use super::*;
35
36 #[test]
37 fn test_can_load_grammar() {
38 let lang = language();
39 assert!(lang.abi_version() > 0);
40 }
41
42 #[test]
43 fn test_try_language_succeeds() {
44 assert!(try_language().is_ok());
45 }
46
47 #[test]
48 #[allow(clippy::const_is_empty)]
49 fn test_node_types_not_empty() {
50 assert!(!NODE_TYPES.is_empty());
51 }
52}