docs: expand the explanation for the `[unsafe]` fn tag
							parent
							
								
									6048d0e974
								
							
						
					
					
						commit
						4c7b6ce2fd
					
				
							
								
								
									
										20
									
								
								doc/docs.md
								
								
								
								
							
							
						
						
									
										20
									
								
								doc/docs.md
								
								
								
								
							|  | @ -4043,12 +4043,28 @@ fn bar() { | |||
| 	foo() // will not be called if `-d debug` is not passed | ||||
| } | ||||
| 
 | ||||
| // Calls to this function must be in unsafe{} blocks | ||||
| // Calls to following function must be in unsafe{} blocks. | ||||
| // Note that the code in the body of `risky_business()` will still be | ||||
| // checked, unless you also wrap it in `unsafe {}` blocks. | ||||
| // This is usefull, when you want to have an `[unsafe]` function that | ||||
| // has checks before/after a certain unsafe operation, that will still | ||||
| // benefit from V's safety features. | ||||
| [unsafe] | ||||
| fn risky_business() { | ||||
| 	// code that will be checked, perhaps checking pre conditions | ||||
| 	unsafe { | ||||
| 		// code that *will not be* checked, like pointer arithmetic, | ||||
| 		// accessing union fields, calling other `[unsafe]` fns, etc... | ||||
| 		// Usually, it is a good idea to try minimizing code wrapped | ||||
| 		// in unsafe{} as much as possible. | ||||
| 		// See also [Memory-unsafe code](#memory-unsafe-code) | ||||
| 	} | ||||
| 	// code that will be checked, perhaps checking post conditions and/or | ||||
| 	// keeping invariants | ||||
| } | ||||
| 
 | ||||
| // V's autofree engine will not take care of memory management in this function | ||||
| // V's autofree engine will not take care of memory management in this function. | ||||
| // You will have the responsibility to free memory manually yourself in it. | ||||
| [manualfree] | ||||
| fn custom_allocations() { | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue