Compare commits
	
		
			3 Commits
		
	
	
		
			813df95e02
			...
			f5fd24fb76
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f5fd24fb76 | |||
| 196a3d1200 | |||
| 16a9d62933 | 
							
								
								
									
										2
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							| @ -27,7 +27,7 @@ | |||||||
| 			"arguments": "main.zig", | 			"arguments": "main.zig", | ||||||
| 			"cwd": "${workspaceRoot}", | 			"cwd": "${workspaceRoot}", | ||||||
| 			"valuesFormatting": "parseText", | 			"valuesFormatting": "parseText", | ||||||
| 			"preLaunchTask": "Build Test", | 			"preLaunchTask": "Build Tests", | ||||||
| 		}, | 		}, | ||||||
| 	] | 	] | ||||||
| } | } | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| pub const io = @import("./io.zig"); | pub const io = @import("./io.zig"); | ||||||
| 
 | 
 | ||||||
| /// | /// | ||||||
| /// Metaprogramming introspection utilities | /// Metaprogramming introspection and generation utilities. | ||||||
| /// | /// | ||||||
| pub const meta = @import("./meta.zig"); | pub const meta = @import("./meta.zig"); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -12,13 +12,12 @@ pub fn FnReturn(comptime Fn: type) type { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// | /// | ||||||
| /// Returns a single-input single-output closure type where `Input` represents the input type, | /// Returns a single-input single-output closure type where `In` represents the input type, `Out` | ||||||
| /// `Output` represents the output type, and `captures_size` represents the size of the closure | /// represents the output type, and `captures_size` represents the size of the closure context. | ||||||
| /// context. |  | ||||||
| /// | /// | ||||||
| pub fn Function(comptime captures_size: usize, comptime Input: type, comptime Output: type) type { | pub fn Function(comptime captures_size: usize, comptime In: type, comptime Out: type) type { | ||||||
|     return struct { |     return struct { | ||||||
|         applyErased: fn (*anyopaque, Input) Output, |         applyErased: fn (*anyopaque, In) Out, | ||||||
|         context: [captures_size]u8, |         context: [captures_size]u8, | ||||||
| 
 | 
 | ||||||
|         /// |         /// | ||||||
| @ -29,7 +28,7 @@ pub fn Function(comptime captures_size: usize, comptime Input: type, comptime Ou | |||||||
|         /// |         /// | ||||||
|         /// Applies `input` to `self`, producing a result according to the current context data. |         /// Applies `input` to `self`, producing a result according to the current context data. | ||||||
|         /// |         /// | ||||||
|         pub fn apply(self: *Self, input: Input) Output { |         pub fn apply(self: *Self, input: In) Out { | ||||||
|             return self.applyErased(&self.context, input); |             return self.applyErased(&self.context, input); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -39,7 +38,7 @@ pub fn Function(comptime captures_size: usize, comptime Input: type, comptime Ou | |||||||
|         /// |         /// | ||||||
|         /// The newly created [Self] is returned. |         /// The newly created [Self] is returned. | ||||||
|         /// |         /// | ||||||
|         pub fn capture(captures: anytype, comptime call: fn (@TypeOf(captures), Input) Output) Self { |         pub fn capture(captures: anytype, comptime call: fn (@TypeOf(captures), In) Out) Self { | ||||||
|             const Captures = @TypeOf(captures); |             const Captures = @TypeOf(captures); | ||||||
| 
 | 
 | ||||||
|             if (@sizeOf(Captures) > captures_size) |             if (@sizeOf(Captures) > captures_size) | ||||||
| @ -52,7 +51,7 @@ pub fn Function(comptime captures_size: usize, comptime Input: type, comptime Ou | |||||||
|                 .context = undefined, |                 .context = undefined, | ||||||
| 
 | 
 | ||||||
|                 .applyErased = struct { |                 .applyErased = struct { | ||||||
|                     fn do(erased: *anyopaque, input: Input) Output { |                     fn do(erased: *anyopaque, input: In) Out { | ||||||
|                         return call(@ptrCast(*Captures, @alignCast( |                         return call(@ptrCast(*Captures, @alignCast( | ||||||
|                             captures_align, erased)).*, input); |                             captures_align, erased)).*, input); | ||||||
|                     } |                     } | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| test { | test { | ||||||
|     _ = @import("./engine/main.zig"); |     _ = @import("./core/main.zig"); | ||||||
|     _ = @import("./oar/main.zig"); |     _ = @import("./oar/main.zig"); | ||||||
|     _ = @import("./ona/main.zig"); |     _ = @import("./ona/main.zig"); | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user