함수 포인터 유형 API
프로토콜 1 사용자 정의 유형은vsql::make_type<> 템플릿 대신 명시적인 함수 포인터를 사용하여 등록됩니다. 함수 서명은 프로토콜 3의 상응하는 서명과 다릅니다 — Arg 및 Result 객체 대신 원시 포인터와 길이를 인자로 받습니다.
함수 서명
등록
vsql::make_type<kMyTypeName>()이 선호되는 형식입니다. make_type(MYTYPE) (템플릿 매개변수 없음)는 프로토콜 1 형식입니다 — 이 지원은 0.0.5 이후에 제거될 예정입니다.
원시 ABI 스타일 (함수)
프로토콜 1 VDF 구현은 타입화된 래퍼를 사용하는 대신 원시 C 구조체를 직접 전달할 수 있습니다. 이 스타일은 0.0.5 이후에 제거될 예정입니다 — 모든 새로운 코드에 타입화된 인자/결과 API를 사용하세요.결과 상수
원시 ABI는result->type에 설정된 vef_return_value_type_t를 통해 결과 상태를 전달합니다:
프로토콜 3에서는
out.set(), out.set_null(), out.warning(), out.error()가 이를 자동으로 처리합니다.
프로토콜 1에서의 집계 등록
집계의 경우,.clear<>()와 .accumulate<>()는 원시 ABI 함수 포인터 서명을 허용합니다. .prerun<>()와 .postrun<>()는 그렇지 않습니다 — 빌더는 프로토콜 1 확장에도 타입화된 서명 (void(PrerunArgs, PrerunResult) 및 void(PostrunArgs))을 요구합니다. 모든 새로운 코드에 타입화된 집계 접근법을 사용하세요.

