1 #pragma once
2 
3 #include <jsi/jsi.h>
4 #include <memory>
5 #include <utility>
6 #include "SharedParent.h"
7 
8 using namespace facebook;
9 
10 namespace reanimated {
11 
12 class MutableValueSetterProxy : public jsi::HostObject {
13  private:
14   friend MutableValue;
15   std::shared_ptr<MutableValue> mutableValue;
16 
17  public:
MutableValueSetterProxy(std::shared_ptr<MutableValue> mutableValue)18   explicit MutableValueSetterProxy(std::shared_ptr<MutableValue> mutableValue)
19       : mutableValue(std::move(mutableValue)) {}
20   void
21   set(jsi::Runtime &rt, const jsi::PropNameID &name, const jsi::Value &value);
22   jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &name);
23 };
24 
25 } // namespace reanimated
26