mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	Initial struct prototype code.
Also add a number of cfunctions for manipulating structs with prototypes.
This commit is contained in:
		| @@ -161,4 +161,22 @@ | ||||
|            ([err] :caught)))) | ||||
|     "regression #638")) | ||||
|  | ||||
| # Struct prototypes | ||||
| (def x (struct/with-proto {1 2 3 4} 5 6)) | ||||
| (def y (-> x marshal unmarshal)) | ||||
| (def z {1 2 3 4}) | ||||
| (assert (= x y) "struct proto marshal equality 1") | ||||
| (assert (= (getproto x) (getproto y)) "struct proto marshal equality 2") | ||||
| (assert (= 0 (cmp x y)) "struct proto comparison 1") | ||||
| (assert (= 0 (cmp (getproto x) (getproto y))) "struct proto comparison 2") | ||||
| (assert (not= (cmp x z) 0) "struct proto comparison 3") | ||||
| (assert (not= (cmp y z) 0) "struct proto comparison 4") | ||||
| (assert (not= x z) "struct proto comparison 5") | ||||
| (assert (not= y z) "struct proto comparison 6") | ||||
| (assert (= (x 5) 6) "struct proto get 1") | ||||
| (assert (= (y 5) 6) "struct proto get 1") | ||||
| (assert (deep= x y) "struct proto deep= 1") | ||||
| (assert (deep-not= x z) "struct proto deep= 2") | ||||
| (assert (deep-not= y z) "struct proto deep= 3") | ||||
|  | ||||
| (end-suite) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Calvin Rose
					Calvin Rose