@comunica/bus-hash-quads
Version:
A comunica bus for hashing quads.
40 lines (39 loc) • 1.59 kB
TypeScript
import { Actor } from '@comunica/core';
import type { IAction, IActorArgs, IActorOutput, IActorTest, Mediate } from '@comunica/core';
import type { Quad } from 'rdf-data-factory';
/**
* A comunica actor for hash-quads events.
*
* Actor types:
* * Input: IActionHashQuads: Metadata for selecting a hash function.
* * Test: <none>
* * Output: IActorHashQuadsOutput: The resulting hash function.
*
* @see IActionHashQuads
* @see IActorHashQuadsOutput
*/
export declare abstract class ActorHashQuads<TS = undefined> extends Actor<IActionHashQuads, IActorTest, IActorHashQuadsOutput, TS> {
/**
* @param args -
* \ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus
* \ @defaultNested {Failed to obtaining hash functions for quads} busFailMessage
*/
constructor(args: IActorHashQuadsArgs<TS>);
}
export interface IActionHashQuads extends IAction {
}
export interface IActorHashQuadsOutput extends IActorOutput {
/**
* A number-based hash factory of the given object.
* It is recommended to always return 32-bit numbers to enable SMI optimization.
*
* Hash functions could produce collisions for non-equal quads.
*
* @param {RDF.Quad} quads The quads to hash.
* @return {string} The object's hash.
*/
hashFunction: HashFunction;
}
export type HashFunction = (quad: Quad) => number;
export type IActorHashQuadsArgs<TS = undefined> = IActorArgs<IActionHashQuads, IActorTest, IActorHashQuadsOutput, TS>;
export type MediatorHashQuads = Mediate<IActionHashQuads, IActorHashQuadsOutput>;