How to call a function of Ethereum contract from a secret contract of Enigma?

Is there any examples of how to write code that callable only by Enigma contract on Ethereum blockchain in Solidity? I found this before

modifier onlyEnigma() {
require(msg.sender == address(enigma));

But this is a 2018 version of Enigma protocol.
I have 2 questions:

  1. How to write a Solidity function callable only by enigma?
  2. How to write a Rust callback function that calls arbitrary functions of smart contract deployed on Ethereum.

I just need some classic examples