Ни async
функций, ни impl Trait
не допускаются в чертах. Вы можете использовать связанные типы, чтобы стать ближе. Вот некоторые идеи:
pub trait ResourceTrait {
type FutType: Future<Output = ()>;
fn prepare(&mut self, auth: &str) -> Self::Next;
}
Реализация этого в настоящее время немного сложна, так как некоторые из необходимых инструментов либо еще не доступны, либо стабильны, либо содержат ошибки.
Это может быть реализовано как:
impl ResourceTrait for Resource {
type FutType = FutureObj<'static, ()>;
fn prepare(&mut self, auth: &str) -> FutureObj<'static, ()> {
FutureObj::new(Box::new(
async move {
// Do async things
// You might get a lifetime issue here if trying to access auth,
// since it's borrowed.
}
))
}
}
Альтернативой с экзистенциальными типами может быть:
impl ResourceTrait for Resource {
// this is required since the real type of the async function
// is unnameable
existential type FutType = Future<Output = ()>;
fn prepare(&mut self, auth: &str) -> Self::FutType {
async move {
// Do async things. Might still encounter the same borrowing issues,
// since the lifetime of the returned Future isn't coupled to the
// lifetime of self.
// The workaround is to make copies of all required fields and move
// them into the Future
}
}
}
Это может работать или не работать (так как функция находится в процессе разработки) , Для правильного заимствования таких параметров, как self
или auth
в возвращаемом будущем, нам также может потребоваться, чтобы вначале были доступны общие ассоциированные типы.
Чтобы обойти проблемы заимствования для self
, вы можете определить
struct Resource {
inner: Arc<ResourceInner>, // carries all actual state
}
, чтобы скопировать inner
в prepare
и переместить его в Future
.
Я использовал бы Fogbugz OnDemand ( здесь) . Это свободно для 2 пользователей и делает все, что Вы хотите от отслеживания задачи до тайм-менеджмента. Я использую его сам для различных любимых проектов, и это отвечает всем моим требованиям, плюс чрезвычайно легко настроить.
Дорожка Ваша работа, Ваши частные проекты, вычисляет затраты, отправляет отчеты по электронной почте и т.д. Выполните 3 легких шага ко времени начала, отследив:
Путь проекта также работал отлично для отдельных проектов: [ http://projectpath.com/] [1]
Microsoft Project в Поле Отбрасывания также предоставил интересное решение, если веб-доступ не нужен. Это обеспечило превосходное управление временной шкалой, особенно с зависимостями от задачи.
Никто еще не упомянул SlimTimer ( www.slimtimer.com ). Это - гладкий небольшой веб-инструмент, который очень гибок и прост в использовании.
большая часть, по моему скромному мнению - то, что каждая задача имеет отображаемое имя в Вашем списке задач, а также 0.. n теги, которые можно использовать для создания отчетов. Таким образом, мой список ожидающих выполнения задач имеет простые имена, которых я могу коснуться, и каждая задача отмечена с соответствующим идентификатором проекта, относительно которого я должен сообщить о своем времени.
Мой SlimTimer отслеживает мое время, проведенное каждый день или неделю, и когда я чувствую себя подобно ему, я тяну отчет и заполняю данные в мою систему расчетов компании.
Вовлеките себя свободное учетная запись DropBox с 2 ГБ пространства памяти (ПК или Mac).
Затем копия (или создают), свободное TiddlyWiki в Вашей папке My DropBox.
А TiddlyWiki является синглом сам содержавший/обновляемый файл HTML, что можно сохранить примерно что-либо в (поддержки, ищущие также), превосходный для тайм-менеджмента, отслеживания задачи, базы знаний и т.д.
кроме того, будучи простым HTML, он поддерживается в Firefox, IE, Safari и т.д.
Затем на любом новом компьютере, просто установите Dropbox, и Вы будете теперь полностью синхронизировать доступ к тому же файлу TiddlyWiki. например, Изменения/обновления, которые Вы делаете в школе или работе, ожидают Вас на Вашем домашнем ПК сразу или когда-то синхронизировались (если ПК был выключен).
Главные преимущества:
Мне нравится Google Calendar - можно вставить все крайние сроки, встречи, назначения и т.д. Его веб-и свободное. У Вас может быть несколько учетных записей на том же календаре как работа и домой и это даже отправит напоминания с SMS
существует Помнить Молочный плагин, конечно, для Вашего списка ожидающих выполнения задач.
PositiveWare делает много тех вещей: Тайм-менеджмент, управление проектами, списки текущих дел, составление бюджета, простое создание счета и создание отчетов.
Никакая интеграция SVN, но это веб-(с приложением AIR для продвинутых пользователей), таким образом, у Вас на самом деле не было бы программного обеспечения для установки.
Это обычно приспосабливается к PR / Маркетинг фирм, но я использую его для своей группы разработки программного обеспечения.
Agilo для Толпы походит на хороший Гибкий плагин Trac для попытки.
Fogbugz имеет несколько плагинов как timesprite, которые позволяют Вам работать над случаями в системе, но отслеживать время независимо, если Вы хотите.
Я настоятельно рекомендую Средство отслеживания Запроса также как и J.J. Это может быть размещено самостоятельно, и я полагаю, что это работает на Windows. (Так как это работает на UNIX, это должно работать на Mac OS.) Я не знаю ни о какой функциональности Диаграммы Гантта для него, но я буду держать пари, что существуют отчеты для него, которые могли сделать это.
я просто отвечаю для включения Средства отслеживания Запроса, не для щедрости. Если по некоторым причинам Вы решаете пойти с RT, удостоверьтесь, что Вы даете J.J. щедрость, поскольку он рекомендовал это сначала!
axosoft http://www.axosoft.com/ предоставляет бесплатную персональную лицензию на их OnTime 2009 про приложение. Имеет дополнение Visual Studio, окна и сеть ui. Я использую его сам.
Дорожки являются основанной на рубине программой учета рабочего времени, которая следует за Получением Вещей Doneв „ў методология. Можно или разместить его на собственном веб-сервере, или если Вам установили рубин на всех компьютерах, Вы планируете использовать его от Вас, может выполнить его от флеш-накопителя. Это позволяет Вам назначить даты истечения срока, таким образом, это покажет Вам Вашу наиболее неотложную задачу. Это имеет несколько различных методов для организации вещей, который дает Вам большую гибкость. Вот , экран бросил и приблизительно снимки экрана .
Я был почти в той же ситуации, которая Вы приблизительно 6 месяцев назад. Я был переполнен отслеживанием своих проектов и задач и нуждался в чем-то, что позволит мне отследить проекты, подзадачи, включенные, и мой успех по ним. Мне также было нужно что-то, что позволит мне сотрудничать с другими по мере необходимости, и это было настраиваемо.
я - разработчик, таким образом, я знал, что SVN был необходимостью. Я хотел систему премьер-министра, которая интегрировалась с SVN и предпочтет, чтобы это было саморазмещено. Я начал с Fogbugz по требованию только давать ему попытку, но это было излишество для моих потребностей, и я никогда не чувствовал, что использовал его, как я должен иметь. Не понимайте меня превратно, система красиво создается и лучше, чем большинство инструментов PM там, но это не было для меня.
После попытки набора других опций, я наконец выбрал Redmine. Это - система премьер-министра, основывался на Ruby on Rails, и это - гибкий, достойный взгляд, и довольно быстро. Это автосоздаст репозитории SVN для каждого проекта, который Вы создаете (если Вы настраиваете его соответственно), и делает Gantt, строящий диаграмму для Вас. Redmine как система премьер-министра для отслеживания проектов и задач удивителен. Единственная вещь, которую я не любил, была, это - отсутствие системы синхронизации. Существует ручная запись времени, но я хотел, чтобы виджет нажал как секундомер для отслеживания моего времени.
я решил использовать Урожай как мое решение для отслеживания времени. Они имеют виджеты в наличии для Windows Vista и OS X, которые помогают остаться сверх отслеживания Вашего времени. Необходимо будет настроить проекты, и клиенты (кажется, что клиент самостоятельно, таким образом, у Вас не будет многих) в Урожае, но после этого необходимо быть хорошими для движения. У них есть феноменальный набор отчетов, что можно просмотреть в любое время для наблюдения, где Вы проводите свое время.
Так, это - в значительной степени это. Я использую Redmine + Урожай в значительной степени каждый день, и я не был более счастливым.
Я использовал Assembla.com в прошлом и любил их. Но, они больше не свободны. Я переместил свой проект в Unfuddle.com , который имеет те же функции управления задачами, а также SVN.
Если можно иметь дело с не хостингом его сами - Toggl.com
Мы используем Средство отслеживания Запроса . Это свободно и имеет API.
Используйте эти Задачи в GMail. Они полезны, prett ylightweight, у Вас может быть иерархия задач. Хороший, если Вы уже используете Gmail.
существует также , Помнят Молочный плагин за GMail. Здесь у Вас не может быть подзадач, но это довольно хорошо также, в целом.
Я в настоящее время оцениваю TargetProcess, и это кажется действительно хорошим! Это - Гибкое приложение управления проектами, таким образом, это могло бы сделать больше, чем, что Вы хотите.
Рюкзак является хорошим от 37signals. У них есть бесплатные учетные записи, многочисленные пользователи и API. Я не уверен в доступе SVN все же.
Вы также могли бы думать приблизительно TRAC. Это включает хорошо с SVN, и хотя сделан больше для разработки, это работало бы хорошо на Ваши потребности, я думаю.
Обновление: Вы упомянули, что Trac приспособлен к командам, и, в то время как верный, я не думаю, что это - действительно плохая вещь. Я не думаю, что существуют любые функции в нем, которые действительно требуют многочисленных пользователей, или это замедлило бы Вас от использования его самостоятельно. И если когда-нибудь необходимо сотрудничать с кем-то еще, кого это будет уже настроено, чтобы сделать это.
Когда дело доходит до работы через многие компьютеры я люблю Dropbox ( http://www.getdropbox.com/ ). Бесплатная учетная запись дает Вам вполне достаточных 2 ГБ пространства, синхронизируемого через Ваши компьютеры (Windows, Mac, Linux). Это не решит Ваши проблемы тайм-менеджмента, но это мог быть краеугольный камень другого решения. Таким образом, если Вы находите настольное применение, которое Вы любите, Вы могли бы смочь синхронизировать файлы через Ваши машины с помощью Dropbox и сделать его "веб-" решением.
, Например, KeePass ( http://keepass.info/ ) работает действительно хорошо с Dropbox. Можно синхронизировать базу данных зашифрованного пароля через компьютеры, таким образом, пароли всегда актуальны.
Эта целая схема была представлена мне Lifehacker, между прочим.
Попробуйте rememberthemilk. Хороший инструмент и имеет количество полезных интерфейсов.
Может быть, уже слишком поздно, но, к сведению, этот может вам тоже помочь.