hara-native 0.1.21

HAL-free native host runtime and package launcher for Hara
Documentation
use hara_protocol_macros::hara_protocol;

#[hara_protocol(namespace = "std.protocol.iencodevisitor", name = "IEncodeVisitor")]
pub trait IEncodeVisitor {
    type Value;
    type Output;

    #[hara_method(value = "visit-nil", arity = 1)]
    fn visit_nil(&mut self) -> Self::Output;
    #[hara_method(value = "visit-boolean", arity = 2)]
    fn visit_boolean(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-number", arity = 2)]
    fn visit_number(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-character", arity = 2)]
    fn visit_character(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-string", arity = 2)]
    fn visit_string(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-keyword", arity = 2)]
    fn visit_keyword(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-symbol", arity = 2)]
    fn visit_symbol(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-seq", arity = 2)]
    fn visit_seq(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-vector", arity = 2)]
    fn visit_vector(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-map", arity = 2)]
    fn visit_map(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-set", arity = 2)]
    fn visit_set(&mut self, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-tagged", arity = 3)]
    fn visit_tagged(&mut self, tag: Self::Value, value: Self::Value) -> Self::Output;
    #[hara_method(value = "visit-unknown", arity = 2)]
    fn visit_unknown(&mut self, value: Self::Value) -> Self::Output;
}