use sim_codec::{DecodeLimits, Input, Output, decode_with_codec_and_limits, encode_with_codec};
use sim_kernel::{Cx, EncodeOptions, Expr, ReadPolicy, Result, Symbol};
pub fn encode_frame_payload(
cx: &mut Cx,
codec: &Symbol,
expr: &Expr,
options: EncodeOptions,
) -> Result<Vec<u8>> {
match encode_with_codec(cx, codec, expr, options)? {
Output::Text(text) => Ok(text.into_bytes()),
Output::Bytes(bytes) => Ok(bytes),
}
}
pub fn decode_frame_payload(
cx: &mut Cx,
codec: &Symbol,
payload: &[u8],
read_policy: ReadPolicy,
limits: DecodeLimits,
) -> Result<Expr> {
decode_with_codec_and_limits(
cx,
codec,
Input::Bytes(payload.to_vec()),
read_policy,
limits,
)
}