Skip to content

Commit 6fafcf9

Browse files
committed
properly seal
1 parent 1e69032 commit 6fafcf9

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/table_column.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@ impl<T> std::ops::Index<usize> for OpaqueTableColumn<'_, T> {
1010
}
1111
}
1212

13-
trait NewTypeMarker: TryInto<usize, Error = crate::TskitError> {}
13+
mod private {
14+
pub trait NewTypeMarker: TryInto<usize, Error = crate::TskitError> {}
15+
pub trait TableColumnMarker {}
16+
}
1417

15-
impl NewTypeMarker for crate::EdgeId {}
16-
impl NewTypeMarker for crate::NodeId {}
18+
impl private::NewTypeMarker for crate::EdgeId {}
19+
impl private::NewTypeMarker for crate::NodeId {}
1720

1821
impl<T> std::ops::Index<crate::SizeType> for OpaqueTableColumn<'_, T> {
1922
type Output = T;
@@ -25,7 +28,7 @@ impl<T> std::ops::Index<crate::SizeType> for OpaqueTableColumn<'_, T> {
2528

2629
impl<I, T> std::ops::Index<I> for OpaqueTableColumn<'_, T>
2730
where
28-
I: NewTypeMarker,
31+
I: private::NewTypeMarker,
2932
{
3033
type Output = T;
3134
fn index(&self, index: I) -> &Self::Output {
@@ -37,16 +40,19 @@ pub trait TableColumn<I, T>:
3740
std::ops::Index<I, Output = T>
3841
+ std::ops::Index<usize, Output = T>
3942
+ std::ops::Index<crate::SizeType, Output = T>
43+
+ private::TableColumnMarker
4044
{
4145
fn as_slice(&self) -> &[T];
4246
fn get(&self, at: usize) -> Option<&T>;
4347
fn get_with_id(&self, at: I) -> Option<&T>;
4448
fn get_with_size_type(&self, at: crate::SizeType) -> Option<&T>;
4549
}
4650

51+
impl<T> private::TableColumnMarker for OpaqueTableColumn<'_, T> {}
52+
4753
impl<I, T> TableColumn<I, T> for OpaqueTableColumn<'_, T>
4854
where
49-
I: NewTypeMarker,
55+
I: private::NewTypeMarker,
5056
{
5157
fn as_slice(&self) -> &[T] {
5258
self.0

0 commit comments

Comments
 (0)