brk_core/structs/
locktime.rs1use serde::Serialize;
2use zerocopy::{Immutable, IntoBytes, KnownLayout, TryFromBytes};
3
4use super::{Height, Timestamp};
5
6#[derive(Debug, Immutable, Clone, Copy, IntoBytes, KnownLayout, TryFromBytes, Serialize)]
7#[repr(C)]
8#[allow(warnings)]
9pub enum LockTime {
10 Height(Height),
11 Timestamp(Timestamp),
12}
13
14impl From<bitcoin::absolute::LockTime> for LockTime {
15 fn from(value: bitcoin::absolute::LockTime) -> Self {
16 match value {
17 bitcoin::absolute::LockTime::Blocks(h) => LockTime::Height(h.into()),
18 bitcoin::absolute::LockTime::Seconds(t) => LockTime::Timestamp(t.into()),
19 }
20 }
21}
22
23impl From<LockTime> for bitcoin::absolute::LockTime {
24 fn from(value: LockTime) -> Self {
25 match value {
26 LockTime::Height(h) => bitcoin::absolute::LockTime::Blocks(h.into()),
27 LockTime::Timestamp(t) => bitcoin::absolute::LockTime::Seconds(t.into()),
28 }
29 }
30}