//    ams - Advanced Memory Scanner
//    Copyright (C) 2018 th0rex
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
use std::slice::from_raw_parts;

use communication::MemoryRegion;

use {Address, Node};

pub(crate) fn simple_node_content<T>(address: Address, content: &[T]) -> Node {
    Node::new(
        address,
        MemoryRegion::new(unsafe {
            from_raw_parts(
                content.as_ptr() as *const u8,
                content.len() * size_of::<T>(),
            )
        }),
    )
}

pub(crate) fn simple_node(address: Address) -> Node {
    Node::new(address, MemoryRegion::new(&[0; 1]))
}
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

use std::mem::size_of;