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