osv 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 137ae556685639f7d13234e3061d9b310757ce02f75a713753d175f1bc71b628
4
- data.tar.gz: 5892494ad08d783955d2b932150d65433a4d3593376fadbaf54e54780e7a350f
3
+ metadata.gz: c05364b766bdf78065ac6da9553bfa7992d61691b5ca111609e385ae05ded4e8
4
+ data.tar.gz: 6eb41be77ba5dfd567f5014ac13232f93231edba7777ea63039e836840b2673e
5
5
  SHA512:
6
- metadata.gz: 6efbc2ee65a8e79379722ae977ee7dbec6131b78968d080f9feb86a3310368c387da54dd8c073e9b4008cb80d906293ea9115982d00d5ff637cf5ab51179b53c
7
- data.tar.gz: 7b4ab3199f90654cd831dfbb52a9d22b70237e7120bd5308a1b7698268fa981abefd7ee47d53424d0c7bff46956256db8f1e139d17e381fd5570a16ca183e376
6
+ metadata.gz: 65ede075b21b4a9f172343002943799765a599ed5462384ce21199eae451dd8b7a66fa1eb1809bcaec9e44ef48654a6212b6c765015e338435aa792790931051
7
+ data.tar.gz: 4edbfc0d1c152c13e0b679ba035426cbea9fbac7d4a4f5a07ef3c4a9797724aa43ef6ee1424671568770e1e6fb121a3501a32f86fc6ee1aacaccdd85610644ee
@@ -8,7 +8,7 @@ use std::{
8
8
  collections::HashMap,
9
9
  sync::{
10
10
  atomic::{AtomicU32, Ordering},
11
- Arc, LazyLock, Mutex, OnceLock,
11
+ Arc, LazyLock, Mutex,
12
12
  },
13
13
  };
14
14
 
@@ -112,54 +112,4 @@ impl StringCache {
112
112
  }
113
113
  Ok(result)
114
114
  }
115
-
116
- pub fn clear(headers: &[Arc<StringCacheKey>]) -> Result<(), CacheError> {
117
- let mut cache = STRING_CACHE
118
- .lock()
119
- .map_err(|e| CacheError::LockError(e.to_string()))?;
120
-
121
- let to_remove: Vec<_> = headers
122
- .iter()
123
- .filter_map(|header| {
124
- let key = header.as_ref().as_ref();
125
- if let Some((_, (_, counter))) = cache.get_key_value(key) {
126
- let prev_count = counter.fetch_sub(1, Ordering::Relaxed);
127
- if prev_count == 1 {
128
- Some(key)
129
- } else {
130
- None
131
- }
132
- } else {
133
- None
134
- }
135
- })
136
- .collect();
137
-
138
- for key in to_remove {
139
- cache.remove(key);
140
- }
141
-
142
- Ok(())
143
- }
144
- }
145
-
146
- pub struct HeaderCacheCleanupIter<I> {
147
- pub inner: I,
148
- pub headers: OnceLock<Vec<Arc<StringCacheKey>>>,
149
- }
150
-
151
- impl<I: Iterator> Iterator for HeaderCacheCleanupIter<I> {
152
- type Item = I::Item;
153
-
154
- fn next(&mut self) -> Option<Self::Item> {
155
- self.inner.next()
156
- }
157
- }
158
-
159
- impl<I> Drop for HeaderCacheCleanupIter<I> {
160
- fn drop(&mut self) {
161
- if let Some(headers) = self.headers.get() {
162
- StringCache::clear(headers).unwrap();
163
- }
164
- }
165
115
  }
@@ -1,7 +1,7 @@
1
1
  use super::builder::ReaderError;
2
2
  use super::header_cache::StringCacheKey;
3
3
  use super::parser::{CsvRecordType, RecordParser};
4
- use super::{header_cache::StringCache, ruby_reader::SeekableRead};
4
+ use super::ruby_reader::SeekableRead;
5
5
  use magnus::{Error, Ruby};
6
6
  use std::borrow::Cow;
7
7
  use std::io::{BufReader, Read};
@@ -137,11 +137,3 @@ impl<'a, T: RecordParser<'a>> Iterator for RecordReader<'a, T> {
137
137
  (0, None) // Cannot determine size without reading entire file
138
138
  }
139
139
  }
140
-
141
- impl<'a, T: RecordParser<'a>> Drop for RecordReader<'a, T> {
142
- #[inline]
143
- fn drop(&mut self) {
144
- // Intentionally ignore errors during cleanup as there's no meaningful way to handle them
145
- let _ = StringCache::clear(&self.headers);
146
- }
147
- }
@@ -94,7 +94,7 @@ pub fn parse_csv(rb_self: Value, args: &[Value]) -> Result<Value, Error> {
94
94
  match result_type {
95
95
  ResultType::Hash => {
96
96
  let builder = RecordReaderBuilder::<
97
- HashMap<Arc<StringCacheKey>, Option<CowStr<'static>>, RandomState>,
97
+ HashMap<Arc<StringCacheKey>, Option<CowStr<'_>>, RandomState>,
98
98
  >::new(ruby, to_read)
99
99
  .has_headers(has_headers)
100
100
  .flexible(flexible)
@@ -113,7 +113,7 @@ pub fn parse_csv(rb_self: Value, args: &[Value]) -> Result<Value, Error> {
113
113
  }
114
114
  }
115
115
  ResultType::Array => {
116
- let builder = RecordReaderBuilder::<Vec<Option<CowStr<'static>>>>::new(ruby, to_read)
116
+ let builder = RecordReaderBuilder::<Vec<Option<CowStr<'_>>>>::new(ruby, to_read)
117
117
  .has_headers(has_headers)
118
118
  .flexible(flexible)
119
119
  .trim(trim)
data/lib/osv/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OSV
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Jaremko