switch to tail -f circular pipes
[jackhill/mal.git] / ada.2 / types-builtins.adb
CommitLineData
daffc668
NB
1package body Types.Builtins is
2
8185fe14 3 function Builtin (Item : in Instance) return Builtin_Ptr
5a07bb53 4 is (Item.F_Builtin);
daffc668 5
5a07bb53 6 procedure Keep_References (Object : in out Instance) is
00c3a3c3 7 begin
8185fe14 8 Keep (Object.F_Meta);
5a07bb53 9 end Keep_References;
00c3a3c3 10
8185fe14 11 function Meta (Item : in Instance) return T
5a07bb53 12 is (Item.F_Meta);
daffc668 13
8185fe14
NB
14 function With_Meta (Builtin : in Builtin_Ptr;
15 Metadata : in T) return T
5a07bb53 16 is
8185fe14
NB
17 -- Builtin is not null and requires an immediate initialization.
18 Ref : constant Builtin_With_Meta_Ptr
5a07bb53
NB
19 := new Instance'(Garbage_Collected.Instance with
20 F_Builtin => Builtin,
21 F_Meta => Metadata);
00c3a3c3 22 begin
5a07bb53
NB
23 Garbage_Collected.Register (Garbage_Collected.Pointer (Ref));
24 return (Kind_Builtin_With_Meta, Ref);
00c3a3c3 25 end With_Meta;
daffc668 26
8185fe14
NB
27 function With_Meta (Builtin : in Instance;
28 Metadata : in T) return T
29 is (With_Meta (Builtin.F_Builtin, Metadata));
daffc668
NB
30
31end Types.Builtins;