//! Architecture-specific ABI implementation details

#![allow(missing_docs)]

#[cfg(any(target_arch = "aarch64", rust_analyzer))]
pub(crate) mod aarch64;
#[cfg(any(target_arch = "aarch64", rust_analyzer))]
use aarch64 as arch_impl;

#[cfg(any(target_arch = "x86_64", rust_analyzer))]
pub(crate) mod x86_64;
#[cfg(any(target_arch = "x86_64", rust_analyzer))]
use x86_64 as arch_impl;

#[cfg(any(target_arch = "riscv64", rust_analyzer))]
pub(crate) mod riscv64;
#[cfg(any(target_arch = "riscv64", rust_analyzer))]
use riscv64 as arch_impl;

pub use arch_impl::SavedFrame;

pub trait FrameOps {
    fn set_user_ip(&mut self, value: usize);
    fn user_ip(&self) -> usize;
}
