summaryrefslogtreecommitdiff
path: root/snippets/rust.snippets
diff options
context:
space:
mode:
Diffstat (limited to 'snippets/rust.snippets')
-rw-r--r--snippets/rust.snippets252
1 files changed, 0 insertions, 252 deletions
diff --git a/snippets/rust.snippets b/snippets/rust.snippets
deleted file mode 100644
index 5e9eb2b..0000000
--- a/snippets/rust.snippets
+++ /dev/null
@@ -1,252 +0,0 @@
-#################
-# Rust Snippets #
-#################
-
-# Functions
-snippet fn "Function definition"
- fn ${1:function_name}(${2})${3} {
- ${0}
- }
-snippet pfn "Function definition"
- pub fn ${1:function_name}(${2})${3} {
- ${0}
- }
-snippet afn "Async function definition"
- async fn ${1:function_name}(${2})${3} {
- ${0}
- }
-snippet pafn "Async function definition"
- pub async fn ${1:function_name}(${2})${3} {
- ${0}
- }
-snippet bench "Bench function" b
- #[bench]
- fn ${1:bench_function_name}(b: &mut test::Bencher) {
- b.iter(|| {
- ${0}
- })
- }
-snippet new "Constructor function"
- pub fn new(${2}) -> ${1:Self} {
- $1 { ${3} }
- }
-snippet main "Main function"
- pub fn main() {
- ${0}
- }
-snippet let "let variable declaration with type inference"
- let ${1} = ${2};
-snippet lett "let variable declaration with explicit type annotation"
- let ${1}: ${2} = ${3};
-snippet letm "let mut variable declaration with type inference"
- let mut ${1} = ${2};
-snippet lettm "let mut variable declaration with explicit type annotation"
- let mut ${1}: ${2} = ${3};
-snippet pri "print!"
- print!("${1}");
-snippet pri, "print! with format param"
- print!("${1}{${2}}", ${3});
-snippet pln "println!"
- println!("${1}");
-snippet pln, "println! with format param"
- println!("${1}{${2}}", ${3});
-snippet fmt "format!"
- format!("${1}{${2}}", ${3});
-snippet d "dbg! debugging macro"
- dbg!(${0:${VISUAL}})
-snippet d; "dbg! debugging macro statement"
- dbg!(&${1});
- ${0}
-# Modules
-snippet ec "extern crate"
- extern crate ${1:sync};
-snippet ecl "extern crate log"
- #[macro_use]
- extern crate log;
-snippet mod
- mod ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} {
- ${0}
- } /* $1 */
-# Testing
-snippet as "assert!"
- assert!(${1:predicate});
-snippet ase "assert_eq!"
- assert_eq!(${1:expected}, ${2:actual});
-snippet test "Unit test function"
- #[test]
- fn ${1:function_name}_test() {
- ${0}
- }
-snippet testmod "Test module" b
- #[cfg(test)]
- mod tests {
- use super::${1:*};
-
- test${0}
- }
-snippet ig "#[ignore]"
- #[ignore]
-# Attributes
-snippet allow "allow lint attribute" b
- #[allow(${1:unused_variables})]
-snippet cfg "cfg attribute" b
- #[cfg(${1:target_os = "linux"})]
-snippet feat "feature attribute" b
- #![feature(${1:plugin})]
-snippet der "#[derive(..)]" b
- #[derive(${1:Debug})]
-snippet attr "#[..]" b
- #[${1:inline}]
-snippet crate "Define create meta attributes"
- // Crate name
- #![crate_name = "${1:crate_name}"]
- // Additional metadata attributes
- #![desc = "${2:Description.}"]
- #![license = "${3:BSD}"]
- #![comment = "${4:Comment.}"]
- // Specify the output type
- #![crate_type = "${5:lib}"]
-# Common types
-snippet opt "Option<T>"
- Option<${1:i32}>
-snippet res "Result<T, E>"
- Result<${1:&str}, ${2:()}>
-# Control structures
-snippet if
- if ${1} {
- ${0:${VISUAL}}
- }
-snippet ife "if / else"
- if ${1} {
- ${2:${VISUAL}}
- } else {
- ${0}
- }
-snippet ifl "if let (...)"
- if let ${1:Some($2)} = $3 {
- ${0:${VISUAL}}
- }
-snippet el "else"
- else {
- ${0:${VISUAL}}
- }
-snippet eli "else if"
- else if ${1} {
- ${0:${VISUAL}}
- }
-snippet mat "match pattern"
- match ${1} {
- ${2} => ${3}
- }
-snippet case "Case clause of pattern match"
- ${1:_} => ${2:expression}
-snippet = "=> "
- => $0
-snippet loop "loop {}" b
- loop {
- ${0:${VISUAL}}
- }
-snippet wh "while loop"
- while ${1:condition} {
- ${0:${VISUAL}}
- }
-snippet whl "while let (...)"
- while let ${1:Some($2)} = $3 {
- ${0:${VISUAL}}
- }
-snippet for "for ... in ... loop"
- for ${1:i} in ${2} {
- ${0}
- }
-# TODO commenting
-snippet todo "TODO comment"
- // TODO: $0
-snippet fixme "FIXME comment"
- // FIXME: $0
-# Struct
-snippet st "Struct definition"
- struct ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} {
- ${0}
- }
-snippet impl "Struct/Trait implementation"
- impl ${1:Type/Trait}${2: for $3} {
- ${0}
- }
-snippet stn "Struct with new constructor"
- pub struct ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} {
- ${0}
- }
-
- impl$2 $1$2 {
- pub fn new(${4}) -> Self {
- $1 { ${5} }
- }
- }
-snippet ty "Type alias"
- type ${1:NewName} = $2;
-snippet enum "enum definition"
- enum ${1:Name} {
- ${2},
- }
-snippet penum "pub enum definition"
- pub enum ${1:Name} {
- ${2},
- }
-# Traits
-snippet trait "Trait definition"
- trait ${1:Name} {
- ${0}
- }
-snippet drop "Drop trait implementation (destructor)"
- impl Drop for $1 {
- fn drop(&mut self) {
- ${0}
- }
- }
-# Statics
-snippet ss "static string declaration"
- static ${1}: &'static str = "${0}";
-snippet stat "static item declaration"
- static ${1}: ${2:usize} = ${0};
-# Concurrency
-snippet spawn "spawn a thread"
- thread::spawn(${1:move }|| {
- ${0}
- });
-snippet chan "Declare (Sender, Receiver) pair of asynchronous channel()"
- let (${1:tx}, ${2:rx}): (Sender<${3:i32}>, Receiver<${4:i32}>) = channel();
-# Implementations
-snippet asref "AsRef trait implementation"
- impl AsRef<${1:Ref}> for ${2:Type} {
- fn as_ref(&self) -> &${3:$1} {
- &self.${0:field}
- }
- }
-snippet asmut "AsMut trait implementation"
- impl AsMut<${1:Ref}> for ${2:Type} {
- fn as_mut(&mut self) -> &mut ${3:$1} {
- &mut self.${0:field}
- }
- }
-snippet fd "Struct field definition" w
- ${1:name}: ${2:Type},
-snippet || "Closure, anonymous function (inline)" i
- ${1:move }|$2| { $3 }
-snippet |} "Closure, anonymous function (block)" i
- ${1:move }|$2| {
- $3
- }
-snippet macro "macro_rules!" b
- macro_rules! ${1:name} {
- (${2:matcher}) => (
- $3
- )
- }
-snippet boxp "Box::new()"
- Box::new(${0:${VISUAL}})
-snippet rc "Rc::new()"
- Rc::new(${0:${VISUAL}})
-snippet unim "unimplemented!()"
- unimplemented!()
-snippet use "use ...;" b
- use ${1:std::$2};