Beginning to implement Dict size

This commit is contained in:
Chadtech 2021-01-16 14:55:04 -05:00
parent 64d69b9ec4
commit 41c1fa06da
4 changed files with 19 additions and 4 deletions

View file

@ -2,9 +2,8 @@ const std = @import("std");
const testing = std.testing;
const expectEqual = testing.expectEqual;
const RocDict = struct {
len: u32,
size: usize,
pub fn init() RocDict {
return RocDict{
@ -17,6 +16,9 @@ const RocDict = struct {
}
};
pub fn dictSize(dict: RocDict) usize {
return dict.size;
}
test "RocDict.init() contains nothing" {
const dict = RocDict.init();

View file

@ -2,6 +2,12 @@ const builtin = @import("builtin");
const std = @import("std");
const testing = std.testing;
// Dict Module
const dict = @import("dict.zig");
comptime {
exportDictFn(dict.size, "size");
}
// Num Module
const num = @import("num.zig");
comptime {

View file

@ -1,7 +1,9 @@
interface Dict2
interface Dict
exposes [ isEmpty, map ]
imports []
size : Dict * * -> Nat
isEmpty : Dict * * -> Bool
## Convert each key and value in the #Dict to something new, by calling a conversion
@ -13,4 +15,8 @@ isEmpty : Dict * * -> Bool
##
## `map` functions like this are common in Roc, and they all work similarly.
## See for example #Result.map, #List.map, and #Set.map.
map : List before, (before -> after) -> List after
map :
Dict beforeKey beforeValue,
(\{ key: beforeKey, value: beforeValue } ->
{ key: afterKey, value: afterValue }
) -> Dict afterKey afterValue

View file

@ -882,6 +882,7 @@ define_builtins! {
3 DICT_SINGLETON: "singleton"
4 DICT_GET: "get"
5 DICT_INSERT: "insert"
6 DICT_SIZE: "size"
}
7 SET: "Set" => {
0 SET_SET: "Set" imported // the Set.Set type alias