mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 18:02:25 -05:00 
			
		
		
		
	[chore] update dependencies (#4386)
- codeberg.org/gruf/go-bytesize v1.0.3 -> v1.0.4 - codeberg.org/gruf/go-kv/v2 v2.0.6 -> v2.0.7 - codeberg.org/gruf/go-mutexes v1.5.2 -> v1.5.3 - codeberg.org/gruf/go-structr v0.9.7 -> v0.9.8 - codeberg.org/gruf/go-ffmpreg v0.6.8 -> v0.6.9 - github.com/tomnomnom/linkheader HEAD@2018 -> HEAD@2025 all of the above codeberg.org/gruf updates are in preparation for Go1.25, except for bytesize, and also ffmpreg which is a rebuild with the latest version of ffmpeg (v5.1.7) Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4386 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								8c619d51b5
							
						
					
				
			
			
				commit
				
					
						a79f83cbde
					
				
			
		
					 38 changed files with 1246 additions and 964 deletions
				
			
		
							
								
								
									
										75
									
								
								vendor/codeberg.org/gruf/go-mangler/v2/struct.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								vendor/codeberg.org/gruf/go-mangler/v2/struct.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | |||
| package mangler | ||||
| 
 | ||||
| import ( | ||||
| 	"unsafe" | ||||
| 
 | ||||
| 	"codeberg.org/gruf/go-xunsafe" | ||||
| ) | ||||
| 
 | ||||
| // field stores the minimum necessary | ||||
| // data for iterating and mangling | ||||
| // each field in a given struct. | ||||
| type field struct { | ||||
| 	mangle Mangler | ||||
| 	offset uintptr | ||||
| } | ||||
| 
 | ||||
| // iterStructType returns a Mangler capable of iterating | ||||
| // and mangling the given struct type currently in TypeIter{}. | ||||
| // note this will fetch sub-Manglers for each struct field. | ||||
| func iterStructType(t xunsafe.TypeIter) Mangler { | ||||
| 
 | ||||
| 	// Number of struct fields. | ||||
| 	n := t.Type.NumField() | ||||
| 
 | ||||
| 	// Gather mangler functions. | ||||
| 	fields := make([]field, n) | ||||
| 	for i := 0; i < n; i++ { | ||||
| 
 | ||||
| 		// Get struct field at index. | ||||
| 		sfield := t.Type.Field(i) | ||||
| 		rtype := sfield.Type | ||||
| 
 | ||||
| 		// Get nested field TypeIter with appropriate flags. | ||||
| 		flags := xunsafe.ReflectStructFieldFlags(t.Flag, rtype) | ||||
| 		ft := t.Child(sfield.Type, flags) | ||||
| 
 | ||||
| 		// Get field mangler. | ||||
| 		fn := loadOrGet(ft) | ||||
| 		if fn == nil { | ||||
| 			return nil | ||||
| 		} | ||||
| 
 | ||||
| 		// Set field info. | ||||
| 		fields[i] = field{ | ||||
| 			mangle: fn, | ||||
| 			offset: sfield.Offset, | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// Handle no. fields. | ||||
| 	switch len(fields) { | ||||
| 	case 0: | ||||
| 		return empty_mangler | ||||
| 	case 1: | ||||
| 		return fields[0].mangle | ||||
| 	default: | ||||
| 		return func(buf []byte, ptr unsafe.Pointer) []byte { | ||||
| 			for i := range fields { | ||||
| 				// Get struct field ptr via offset. | ||||
| 				fptr := add(ptr, fields[i].offset) | ||||
| 
 | ||||
| 				// Mangle the struct field data. | ||||
| 				buf = fields[i].mangle(buf, fptr) | ||||
| 				buf = append(buf, ',') | ||||
| 			} | ||||
| 
 | ||||
| 			if len(fields) > 0 { | ||||
| 				// Drop final comma. | ||||
| 				buf = buf[:len(buf)-1] | ||||
| 			} | ||||
| 
 | ||||
| 			return buf | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue