import { equals } from 'remeda' import { FilterTwo } from '../../Filter' import { ensureFind } from '../../ensure' interface ModelRealPair { model: M real: R } type ModelRealPairSymmetric = ModelRealPair export type MRP = ModelRealPair export type MRPS = ModelRealPairSymmetric export const getRealFromModelBy = (filter: FilterTwo) => (model: M) => (pairs: MRP[]) => ensureFind(pairs, p => filter(p.model, model)).real export const getRealFromModel = getRealFromModelBy(equals) export const getModelFromRealBy = (filter: FilterTwo) => (real: R) => (pairs: MRP[]) => ensureFind(pairs, p => filter(p.real, real)).model export const getModelFromReal = getModelFromRealBy(equals)