142 {
143#if !defined(SKOTTIE_DISABLE_STYLES)
144 if (!layer) {
145 return nullptr;
146 }
147
148 using StyleBuilder =
151 static constexpr StyleBuilder gStyleBuilders[] = {
152 nullptr,
153 &EffectBuilder::attachDropShadowStyle,
154 &EffectBuilder::attachInnerShadowStyle,
155 &EffectBuilder::attachOuterGlowStyle,
156 &EffectBuilder::attachInnerGlowStyle,
157 };
158
160 if (!jstyle) {
161 continue;
162 }
163
164 const auto style_type =
165 ParseDefault<size_t>((*jstyle)["ty"], std::numeric_limits<size_t>::max());
166 auto builder = style_type < std::size(gStyleBuilders) ? gStyleBuilders[style_type]
167 : nullptr;
168
169 if (!builder) {
171 continue;
172 }
173
174 layer = (this->*
builder)(*jstyle, std::move(layer));
175 }
176#endif
177
178 return layer;
179}