49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			V
		
	
	
// Copyright (c) 2019-2022 Alexander Medvednikov. All rights reserved.
 | 
						|
// Use of this source code is governed by an MIT license
 | 
						|
// that can be found in the LICENSE file.
 | 
						|
module http
 | 
						|
 | 
						|
// The methods listed here are some of the most used ones, ordered by
 | 
						|
// commonality. A comprehensive list is available at:
 | 
						|
// https://www.iana.org/assignments/http-methods/http-methods.xhtml
 | 
						|
pub enum Method {
 | 
						|
	get
 | 
						|
	post
 | 
						|
	put
 | 
						|
	head
 | 
						|
	delete
 | 
						|
	options
 | 
						|
	trace
 | 
						|
	connect
 | 
						|
	patch
 | 
						|
}
 | 
						|
 | 
						|
pub fn (m Method) str() string {
 | 
						|
	return match m {
 | 
						|
		.get { 'GET' }
 | 
						|
		.post { 'POST' }
 | 
						|
		.put { 'PUT' }
 | 
						|
		.head { 'HEAD' }
 | 
						|
		.delete { 'DELETE' }
 | 
						|
		.options { 'OPTIONS' }
 | 
						|
		.trace { 'TRACE' }
 | 
						|
		.connect { 'CONNECT' }
 | 
						|
		.patch { 'PATCH' }
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
pub fn method_from_str(m string) Method {
 | 
						|
	return match m {
 | 
						|
		'GET' { Method.get }
 | 
						|
		'POST' { Method.post }
 | 
						|
		'PUT' { Method.put }
 | 
						|
		'HEAD' { Method.head }
 | 
						|
		'DELETE' { Method.delete }
 | 
						|
		'OPTIONS' { Method.options }
 | 
						|
		'TRACE' { Method.trace }
 | 
						|
		'CONNECT' { Method.connect }
 | 
						|
		'PATCH' { Method.patch }
 | 
						|
		else { Method.get } // should we default to GET?
 | 
						|
	}
 | 
						|
}
 |