1 # coding: utf-8
2 # frozen_string_literal: true
3
4
5
6 module Umu
7
8 module Value
9
10 module Core
11
12 class Opaque < Top
13 attr_reader :obj
14
15
16 def initialize(obj)
17 ASSERT.kind_of obj, ::Object
18
19 super()
20
21 @obj = obj
22 end
23
24
25 def to_s
26 format "#Opaque<%s>", self.obj.inspect
27 end
28
29
30 def pretty_print(q)
31 PRT.group q, bb:'#Opaque<', eb:'>' do
32 q.pp self.obj
33 end
34 end
35 end
36 Opaque.freeze
37
38
39
40 module_function
41
42 def make_opaque(obj)
43 ASSERT.kind_of obj, ::Object
44
45 Opaque.new(obj).freeze
46 end
47
48 end # Umu::Value::Core
49
50 end # Umu::Value
51
52 end # Umu