26 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # key: bench
 | |
| # name: benchmark-module
 | |
| # expand-env: ((yas-indent-line (quote fixed)))
 | |
| # --
 | |
| --------------------------------------------------------------------------------
 | |
| module ${1:`(if (not buffer-file-name) "Module"
 | |
|                 (let ((name (file-name-sans-extension (buffer-file-name)))
 | |
|                       (case-fold-search nil))
 | |
|                      (if (cl-search "bench/" name)
 | |
|                          (replace-regexp-in-string "/" "."
 | |
|                            (replace-regexp-in-string "^\/[^A-Z]*" ""
 | |
|                              (car (last (split-string name "src")))))
 | |
|                          (file-name-nondirectory name))))`} ( benchmark, main ) where
 | |
| --------------------------------------------------------------------------------
 | |
| import Bench.Prelude
 | |
| --------------------------------------------------------------------------------
 | |
| import ${1:$(s-chop-suffix "Bench" yas-text)}
 | |
| --------------------------------------------------------------------------------
 | |
| 
 | |
| main :: IO ()
 | |
| main = defaultMain [benchmark]
 | |
| 
 | |
| --------------------------------------------------------------------------------
 | |
| 
 | |
| benchmark :: Benchmark
 | |
| benchmark = bgroup "${1:$(->> yas-text (s-chop-suffix "Bench") (s-split ".") -last-item)}" [bench "something dumb" $ nf (1 +) (1 :: Int)]
 |