История изменений
Исправление
cumvillain,
(текущая версия)
:
struct Resource {
foo: u64,
bar: u64,
}
struct LockedResource(...);
impl LockedResource {
fn from_resource(res: &Resource) -> LockedResource { ... }
}
impl Drop for LockedResource { ... }
fn foo(b: bool) {
let res = Resource::new();
let mut lr = LockedResource::from_resource(&res);
lr.do_something_with_shared_resource();
}
Ну и как бы все
Исправление
cumvillain,
:
struct Resource {
foo: u64,
bar: u64,
}
struct LockedResource(...);
impl LockedResource {
fn from_resource(res: &Resource) -> LockedResource { ... }
}
impl Drop for LockedResource { ... }
fn foo(b: bool) {
let res = Resource::new();
let mut lr = LockedResource::from_resource(&res);
lr.do_something_with_shared_resourse();
}
Ну и как бы все
Исправление
cumvillain,
:
struct Resource {
foo: u64,
bar: u64,
}
struct LockedResource(...);
impl LockedResource {
fn from_resource(res: &Resource) -> LockedResource { ... };
}
impl Drop for LockedResource { ... };
fn foo(b: bool) {
let res = Resource::new();
let mut lr = LockedResource::from_resource(&res);
lr.do_something_with_shared_resourse();
}
Ну и как бы все
Исправление
cumvillain,
:
struct Resource {
foo: u64,
bar: u64,
}
struct LockedResource(...);
impl LockedResource {
fn from_resource() -> LockedResource { ... };
}
impl Drop for LockedResource { ... };
fn foo(b: bool) {
let res = Resource::new();
let mut lr = LockedResource::from_resource(&res);
lr.do_something_with_shared_resourse();
}
Ну и как бы все
Исходная версия
cumvillain,
:
struct Resource {
foo: u64,
bar: u64,
}
newtype LockedResource(...);
impl LockedResource {
fn from_resource() -> LockedResource { ... };
}
impl Drop for LockedResource { ... };
fn foo(b: bool) {
let res = Resource::new();
let mut lr = LockedResource::from_resource(&res);
lr.do_something_with_shared_resourse();
}
Ну и как бы все