code: def masked_string_view_replace_impl(context, builder, sig, args):
      ret = cgutils.create_struct_proxy(sig.return_type)(
          context, builder
      )
      (
          src_masked,
          to_replace_masked,
          replacement_masked,
      ) = _masked_proxies(
          context, builder, MaskedType(string_view), *args
      )
      result = replace_impl(
          context,
          builder,
          nb_signature(
              udf_string, string_view, string_view, string_view
          ),
          (
              src_masked.value,
              to_replace_masked.value,
              replacement_masked.value,
          ),
      )
  
      ret.value = result
      ret.valid = builder.and_(
          builder.and_(src_masked.valid, to_replace_masked.valid),
          replacement_masked.valid,
      )
  
      return ret._getvalue()
  
imports: import operator
  from functools import partial
  from numba import cuda, types
  from numba.core import cgutils
  from numba.core.datamodel import default_manager
  from numba.core.typing import signature
  from numba.cuda.cudaimpl import lower, registry
  from cudf._lib.strings_udf import get_character_cases_table_ptr, get_character_flags_table_ptr, get_special_case_mapping_table_ptr
  from cudf.core.udf.masked_typing import MaskedType
  from cudf.core.udf.strings_typing import size_type, string_view, udf_string
label_desc: Use image node_id 46 for calling a global function with example usage: masked_string_view_replace_impl(context, builder, sig, args) and returns: ret