1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use crate::types::heap::ArgBuffer;
use super::HandleTypeInfo;
pub trait LogApi: HandleTypeInfo {
type LogApiImpl: LogApiImpl
+ HandleTypeInfo<
ManagedBufferHandle = Self::ManagedBufferHandle,
BigIntHandle = Self::BigIntHandle,
BigFloatHandle = Self::BigFloatHandle,
EllipticCurveHandle = Self::EllipticCurveHandle,
>;
fn log_api_impl() -> Self::LogApiImpl;
}
pub trait LogApiImpl: HandleTypeInfo {
fn write_event_log(&self, topics_buffer: &ArgBuffer, data: &[u8]);
fn write_legacy_log(&self, topics: &[[u8; 32]], data: &[u8]);
fn managed_write_log(
&self,
topics_handle: Self::ManagedBufferHandle,
data_handle: Self::ManagedBufferHandle,
);
}